2014-10-03 185 views
0

我終於設法讓我的web服務器啓動並運行python。 我現在可以輸入指向python腳本的直接url並且正在執行。通過鏈接在web服務器上執行python腳本

我寫了一個腳本,生成一個html頁面並返回它 - 工作;並且如果字符串保存爲html並打開,它將完全按照我的需要顯示。 不過,我想,如果用戶瀏覽到這顯示在導航菜單中的「數據庫」鏈接

 <nav> 
      <ul class="main-nav"> 
       **<li><a href="#">Database</a></li>** 
       <li><a href="#">About</a></li> 
       <li><a href="admin.html">Admin</a></li> 
      </ul> 
     </nav> 

我想劇本,當用戶點擊菜單鏈接上執行,以顯示此頁但我不希望用戶看到到python腳本的實際鏈接。 也就是說鏈接應該顯示localhost/database.html,但腳本應該被執行並且返回的內容應該被顯示。

我希望這是有道理的 - 任何幫助表示讚賞

+0

你意識到你可以設置一個web服務器來使用一個文件夾內的默認文件,所以你可以將它移動到一個名爲database的文件夾中,而不是指向localhost/database.html的鏈接,並且刪除擴展名,例如localhost /數據庫,這是你可以把你的腳本文件在那裏,讓服務器執行它,但URL永遠不會告訴用戶它是什麼類型的文件。你使用什麼樣的網絡服務器? – 2014-10-03 09:45:44

+0

@JamesKent HI James,感謝您的及時回覆。我正在使用Apache 2 Web服務器。這聽起來像是一種可能性,但那意味着如果我在其他地方移動頁面,我必須確保Web服務器設置爲使用默認文件!理想情況下,如果可能的話,我希望所有這些都發生在html方面。不過,你有沒有機會知道在哪裏/如何設置它?它只是httpt.cof(或其他所謂的)中的「另一個」設置?謝謝 – T1M 2014-10-03 09:53:40

+0

不幸的是我沒有apache的經驗,我只看過微軟的IIS和內置的服務器在Python中,但這個鏈接似乎做你想在第二個答案:http:// stackoverflow。 com/questions/6874480/default-file-for-apache-localhost – 2014-10-03 10:00:48

回答

1

達到你想要什麼,最簡單的方法(最終用戶看不到它不是一個HTML文件)將文件移動到一個文件夾,並配置服務器執行和服務器當用戶導航到該文件夾​​中文件的結果,也就是將文件移動到一個文件夾,名爲:

/database 

,然後改變你的鏈接指向那裏,然後配置Web服務器接受python文件名作爲默認文件,在你的情況下運行Apache應該是這樣的:

查找Apache配置文件DirectoryIndex指令(httpd.conf文件),或者將其添加到.htaccess文件,並修改它看起來像這樣,如果你想限制你的默認索引文件只是index.html的:

DirectoryIndex index.html 

您還可以包括更多的資源,他們會在給定的順序使用,例如

DirectoryIndex index.html index.php 

將首先顯示index.html文件如果雙方的index.html和index.php文件存在。

如果您對httpd.conf文件進行了更改,請不要忘記重新啓動Apache。

這種方式進行本地測試時,你會看到的網址是:

localhost/database 

,並避免將任何擴展就可以了,這是簡單的,試圖做一些的重定向。

親自使用做類似於執行查詢的頁面時,我傾向於稱它們爲process以表明它們在我正在處理它時實際上做了某些事情,並且我調用索引時會靜態文件(除非有多個文件在這個位置),這不是必需的,只是我個人的偏好,但它有助於保持配置的簡單性,因爲只有那麼多的名稱必須添加到默認列表中。