2012-08-10 97 views
1

所以我在我的服務器上安裝了python,並且使用帶有apache的wsgi_module。我必須使用wsgi_module的「def application」嗎?

盡我所有的Python程序都使用此格式:

def application(environ, start_response): 
    headers = [] 
    headers.append(('Content-Type', 'text/plain')) 
    write = start_response('200 OK', headers) 

    input = environ['wsgi.input'] 
    output = cStringIO.StringIO() 

    print >> output, "test" 

    output.write(input.read(int(environ.get('CONTENT_LENGTH', '0')))) 
    return [output.getvalue()] 

反正是有設定,讓我可以寫Python腳本,只是有:

print "test" 

回答

0

是的,你的腳本肯定需要可調用(不一定是函數,它也可以是一個__call__方法定義的類),它接受environ和* start_response *參數,因爲它是012的一部分,這就是它的工作方式。

您想用PHP風格編寫腳本的方式(如「打印某些內容」)的方式不起作用。目前有一個名爲PSP(Python服務器頁面)的死亡計劃混淆了代碼和模板,但它無法獲得流行,因爲它肯定不是Python編寫應用程序的方式。

+0

好吧我想更重要的是我希望能夠打印出類似於PHP刷新方法的東西。就像我希望能夠打印,睡覺(1),打印。在這些wsgi標準下,這種事情是可能的嗎? – Rawr 2012-08-10 10:58:14

+0

@Rawr你在談論的東西在WSGI標準中有很好的記載:http://www.python.org/dev/peps/pep-0333/#buffering-and-streaming。花點時間看看,所有問題都應該得到解答。 – 2012-08-10 11:00:47

相關問題