2014-09-11 55 views
-1

我想知道如何在python腳本中顯示請求($_GET)?

請注意,我使用mod_python作爲在UBUNTU服務器上使用apache2運行的基本Web服務器。

如果您有任何想法,您的幫助將是非常讚賞:)

其他Python Web服務器一樣的Django等...筆記,因爲我只運行一個python腳本特定任務需要在我的情況:)

+2

你使用任何web框架或者是你直接從WSGI軟管喝? – 2014-09-11 09:18:03

+0

不,我不使用任何框架:)基本的Python Web服務器:) – user3818090 2014-09-11 09:18:46

+3

然後開始使用一個。沒有理由留在那麼低的水平。從https://wiki.python.org/moin/WebFrameworks挑選一個,儘管現在Flask,Pyramid和Django最受歡迎,具體取決於您的需求。 – 2014-09-11 09:20:50

回答

2

對於一個簡單的腳本來響應Web請求,我不會使用mod_python;你可能想在這裏改用mod_wsgi

你必須自己解析QUERY_STRING WSGI變量;你可以用urlparse.parse_qs() function這樣做:

from urlparse import parse_qs 

def application(environ, start_response): 
    params = parse_qs(environ['QUERY_STRING']) 
    foo = params.get('foo', [None])[0] 

parse_qs解析出查詢字符串,並設置在所產生的字典中的值到列表每關鍵,因爲密鑰可以在查詢字符串中出現不止一次。

以上將挑選列表中的第一個值,或者如果密鑰完全不存在,則選擇None

如果你要堅持普通香草WSGI,請閱讀decent tutorial以瞭解它是如何工作的。不過我強烈建議你使用一個框架;即使只是Werkzeug也可以讓你的開發人員變得更加簡單,即使是一個簡單的腳本。

如果你要堅持一個mod_python請求處理程序,更換environ['QUERY_STRING']request.args()

from urlparse import parse_qs 

def requesthandler(req): 
    params = parse_qs(req.args) 
    foo = params.get('foo', [None])[0] 
+0

謝謝,以及如何從外部字符串調用'def application''foo'? – user3818090 2014-09-11 09:38:01

+1

@ user3818090:ick,你正在使用'mod_python',而不是'mod_wsgi'。這是相當古老和過時的這些天.. – 2014-09-11 09:40:27

+0

我剛剛安裝'mod_wsgi'就像你建議我! – user3818090 2014-09-11 09:44:22