python3 web框架_循序渐进Python3(十二) --0-- web之框架
上述通過socket來實現(xiàn)了其本質(zhì),而對于真實開發(fā)中的python web程序來說,一般會分為兩部分:服務器程序和應用程序。服務器程序負責對socket服務器進行封裝,并在請求到來時,對請求的各種數(shù)據(jù)進行整理。應用程序則負責具體的邏輯處理。為了方便應用程序的開發(fā),就出現(xiàn)了眾多的Web框架,例如:Django、Flask、web.py 等。不同的框架有不同的開發(fā)方式,但是無論如何,開發(fā)出的應用程序都要和服務器程序配合,才能為用戶提供服務。這樣,服務器程序就需要為不同的框架提供不同的支持。這樣混亂的局面無論對于服務器還是框架,都是不好的。對服務器來說,需要支持各種不同框架,對框架來說,只有支持它的服務器才能被開發(fā)出的應用使用。這時候,標準化就變得尤為重要。我們可以設立一個標準,只要服務器程序支持這個標準,框架也支持這個標準,那么他們就可以配合使用。一旦標準確定,雙方各自實現(xiàn)。這樣,服務器可以支持更多支持標準的框架,框架也可以使用更多支持標準的服務器。
WSGI(Web Server Gateway Interface)是一種規(guī)范,它定義了使用python編寫的web app與web server之間接口格式,實現(xiàn)web app與web server間的解耦。
python標準庫提供的獨立WSGI服務器稱為wsgiref。
#!/usr/bin/env python
#coding:utf-8
fromwsgiref.simple_server importmake_server
defRunServer(environ,start_response):
start_response('200 OK',[('Content-Type','text/html')])
return'
Hello, web!
'if__name__ =='__main__':
httpd =make_server('',8000,RunServer)
print"Serving HTTP on port 8000..."
httpd.serve_forever()
自定義web框架
通過python標準庫提供的wsgiref模塊開發(fā)一個自己的Web框架。
#!/usr/bin/env python
#coding:utf-8
fromwsgiref.simple_server importmake_server
defindex():
return'index'
deflogin():
return'login'
defrouters():
urlpatterns =(
('/index/',index),
('/login/',login),
)
returnurlpatterns
defRunServer(environ,start_response):
start_response('200 OK',[('Content-Type','text/html')])
url =environ['PATH_INFO']
urlpatterns =routers()
func =None
foritem inurlpatterns:
ifitem[0]==url:
func =item[1]
break
iffunc:
returnfunc()
else:
return'404 not found'
if__name__ =='__main__':
httpd =make_server('',8000,RunServer)
print"Serving HTTP on port 8000..."
httpd.serve_forever()
python中的WEB框架分為:即寫Socket又寫(處理請求)的WEB框架比如Tornado,
還有就是不寫Socket然后自己寫處理請求的WEB框架:Django
總結
以上是生活随笔為你收集整理的python3 web框架_循序渐进Python3(十二) --0-- web之框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue项目导入elementui_在vu
- 下一篇: 医疗小程序源码_不懂商城小程序源码,如何