詳細解讀Python的web.py框架下的application.py模組
文章出處:http://www.jb51.net/article/65307.htm
本文主要分析的是web.py庫的application.py這個模組中的程式碼。總的來說,這個模組主要實現了WSGI相容的介面,以便應用程式能夠被WSGI應用伺服器呼叫。WSGI是Web Server Gateway Interface的縮寫,具體細節可以檢視WSGI的WIKI頁面
介面的使用
使用web.py自帶的HTTP Server
下面這個例子來自官方文件的Hello World,這個程式碼一般是應用入口的程式碼:
?1 2 3 4 5 6 7 8 9 10 11 |
import
web
urls
=
( "/.*" ,
"hello" )
app
=
web.application(urls, globals ())
class
hello:
def
GET( self ):
return
'Hello, world!'
if
__name__ = =
"__main__" :
app.run()
|
上面的例子描述了一個web.py應用最基本的組成元素:
- URL路由表
- 一個web.application例項app
- 呼叫app.run()
其中,app.run()的呼叫是初始化各種WCGI介面,並啟動一個內建的HTTP伺服器和這些介面對接,程式碼如下:
?1 2 |
def
run( self ,
* middleware):
return
wsgi.runwsgi( self .wsgifunc( * middleware))
|
與WSGI應用伺服器對接
如果你的應用要與WSGI應用伺服器對接,比如uWSGI,gunicorn等,那麼應用入口的程式碼就要換一種寫法了:
1 2 3 4 5 6 7 8 9 |
|