2009-06-29 34 views
1

因此剛剛開始在WAMP上學習python,我得到了使用cgi的html表單的結果,併成功地用mysqldb執行了數據庫搜索。我可以通過在python cgi代碼中使用print語句將結果返回到以.py結尾的頁面,但是我想創建一個.html網頁並將其返回給用戶,並/或將它們保留在同一個Web地址中當數據庫搜索結果返回時。如何將動態生成的網頁輸出到.html頁面而不是.py cgi頁面?

感謝 保羅

編輯:澄清我的本地機器上,我看到在地址欄我提交HTML表單/localhost/search.html,和/本地主機/ cgi-bin目錄收到一個結果頁面/searchresults.py。我想在/localhost/results.html或/localhost/search.html上看到結果。如果這是在一個公共服務器上,那麼假定它會返回.../cgi-bin/searchresults.py,上一次我看到/ cgi-bin /目錄是在90年代的url中。我瞥了一眼addhandler,正如大衛所建議的那樣,我不確定這是否是我想要的。

編輯:感謝你們所有人的意見,沒有使用框架,mod_rewrite似乎是要走的路,但看了看,我決定救自己麻煩,並用mod_wsgi與django一起去,主要是因爲用戶數量和文檔數量。我可能會切換到更輕/更可定製的框架,一旦我得到的基本知識

+0

你在使用什麼框架?這是原始的.CGI腳本?如果是這樣,爲什麼你不使用mod_wsgi? – 2009-06-29 20:54:19

回答

3

首先,我建議你記住URL是URL和文件擴展名無關緊要,你應該保留它。

如果這還不夠,請記住URL是URL,並且文件擴展名不重要—並配置Apache以使用不同的規則來確定是CGI程序而不是要提供的靜態文件原樣。您可以使用AddHandler爲擴展名爲.html的硬盤上的文件添加處理程序。

或者,你可以使用mod_rewrite告訴Apache是​​… /foo.html意味着… /foo.py

最後,我建議,如果你周圍的淤泥用什麼網址的樣子,那你刪除了任何看起來像文件擴展名的東西(以便請求…/foo,而不是… /foo.anything)。至於保持用戶在結果的地址與請求的地址相同,如果程序沒有得到指示搜索項已經通過的查詢字符串參數,那麼這只是讓程序輸出沒有結果的基本頁面而已。