2011-07-07 39 views
6

我完全不熟悉Python,我想使用它創建網頁(但不使用Web框架或模板模塊)。最低要求是什麼?你能建議一個簡單的設置?使用純Python生成網頁的輕量級設置

謝謝!

編輯:我不想盡一切代價極簡主義。我在尋找的是一個簡單而通用的解決方案,它接近語言(並且不強加設計範例,例如MVC)。

+2

最低要求是Python和Web框架。 ;-) – Keith

+0

「...並執行網頁...」?咦?你是什​​麼意思? –

+2

@Chris,也許這意味着用IE瀏覽它們;) –

回答

3

我走的流程,我會建議使用輕量級的框架。

首先,網絡應用程序使您的服務器面臨安全風險,因此使用由大多數開發人員(更多的眼球來修復漏洞)維護的東西是很好的。

此外,如果你想「保持接近語言」,你需要某種抽象層來管理HTTP的pythonic方式。 Python是關於高層次的[包含電池]。

該框架的一些保持非常接近python的語法,語義和風格。以webpy爲例。我覺得這句話很能背後webpy的理念:

「的Django讓你寫在Django網絡應用的TurboGears讓你寫在TurboGears的Web應用程序Web.py讓你用Python語言編寫Web應用程序。」亞當 - 阿特拉斯

另外一個很好的候選人,簡潔和使用「常規」蟒來說是cherrypy。從他們的網站:

CherryPy允許開發人員構建Web應用程序的方式與構建任何其他面向對象的Python程序的方式大致相同。 [...] CherryPy支持的Web應用程序實際上是獨立的Python應用程序,它嵌入了自己的多線程Web服務器。您可以在任何可以運行Python應用程序的地方部署它們

3

如果你真的想這樣做,你所需要的最低限度是理解WSGI,這是Python和Web服務器之間的粘合劑。你可以可以直接在此基礎上構建一個Python web應用程序。

但是,和其他回答者一樣,我真的會鼓勵你使用一個框架。它們並不是像Django那樣龐大的整體事物 - 例如參見Flask這樣的微框架。他們會照顧顯而易見的事情,例如將URL請求路由到正確的代碼。

2

只要運行這個命令

$ python -m SimpleHTTPServer 
Serving HTTP on 0.0.0.0 port 8000 ... 

沒有什麼比這

更輕便現在看CGIHTTPServer。PY在Python庫更多的想法

4

清潔WSGI應用程序,沒有一個完全成熟的框架:

from wsgiref.simple_server import make_server 

def application(environ, start_response): 

    # Sorting and stringifying the environment key, value pairs 
    response_body = ['%s: %s' % (key, value) 
        for key, value in sorted(environ.items())] 
    response_body = '\n'.join(response_body) 

    status = '200 OK' 
    response_headers = [('Content-Type', 'text/plain'), 
        ('Content-Length', str(len(response_body)))] 
    start_response(status, response_headers) 

    return [response_body] 

# Instantiate the WSGI server. 
# It will receive the request, pass it to the application 
# and send the application's response to the client 
httpd = make_server(
    'localhost', # The host name. 
    8051, # A port number where to wait for the request. 
    application # Our application object name, in this case a function. 
    ) 

# Wait for a single request, serve it and quit. 
httpd.handle_request() 

然後你可以使用nginx的:http://wiki.nginx.org/NgxWSGIModule

這是最穩定的,安全的和裸到骨骼設置。

更多示例:https://bitbucket.org/lifeeth/mod_wsgi/src/6975f0ec7eeb/examples/

這是最好的學習方式(如你所問)。我已經走了這條路。

+0

謝謝Flavius,我感謝你的回答以及使用nginx的建議。 –