python web框架的總結(jié)
1、Django
Django可能是最具代表性的Python框架,是遵循MMVC結(jié)構(gòu)模式的開源框架。其名字來自DjangoReinhardt,法國作曲家和吉他演奏家,很多人認為他是歷史上最偉大的吉他演奏家。位于堪薩斯州的Lawrence城市的LawrenceJournal-World報社有兩名程序員,AdrianHolovaty和SimonWillison,他們在2003年開發(fā)了Django,為報紙開發(fā)了網(wǎng)絡(luò)程序。
2、TurboGears
TurboGears是SQLAlchemy、WebOb、Repoze、Genshi等著名Python項目構(gòu)筑的框架。從某種意義上說,TurboGears是將多個已經(jīng)建立的開放平臺粘在一起。和Django一樣,采用MVC結(jié)構(gòu)。最近還包含了最小模式,可以作為微框架。
3、Flask
Flask是一個基于Jinja2和Werkzeug的python微框架,類似于其他框架。是BSD授權(quán)的,有少量限制的免費軟件許可。使用Flask的網(wǎng)站包括領(lǐng)英LinkedIN和Pinterest。
知識點擴展:
基于socket
自己處理請求
#!/usr/bin/env python3
#coding:utf8
import socket
def handle_request(client):
#接收請求
buf = client.recv(1024)
print(buf)
#返回信息
client.send(bytes('<h1>welcome liuyao webserver</h1>','utf8'))
def main():
#創(chuàng)建sock對象
sock = socket.socket()
#監(jiān)聽80端口
sock.bind(('localhost',8000))
#最大連接數(shù)
sock.listen(5)
print('welcome nginx')
#循環(huán)
while True:
#等待用戶的連接,默認accept阻塞當有請求的時候往下執(zhí)行
connection,address = sock.accept()
#把連接交給handle_request函數(shù)
handle_request(connection)
#關(guān)閉連接
connection.close()
if __name__ == '__main__':
main()
基于wsgi
WSGI,全稱 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是為 Python 語言定義的 Web 服務(wù)器和 Web 應(yīng)用程序或框架之間的一種簡單而通用的接口。自從 WSGI 被開發(fā)出來以后,許多其它語言中也出現(xiàn)了類似接口。
WSGI 的官方定義是,the Python Web Server Gateway Interface。從名字就可以看出來,這東西是一個Gateway,也就是網(wǎng)關(guān)。網(wǎng)關(guān)的作用就是在協(xié)議之間進行轉(zhuǎn)換。
WSGI 是作為 Web 服務(wù)器與 Web 應(yīng)用程序或應(yīng)用框架之間的一種低級別的接口,以提升可移植 Web 應(yīng)用開發(fā)的共同點。WSGI 是基于現(xiàn)存的 CGI 標準而設(shè)計的。
很多框架都自帶了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。當然性能都不好,自帶的 web server 更多的是測試用途,發(fā)布時則使用生產(chǎn)環(huán)境的 WSGI server或者是聯(lián)合 nginx 做 uwsgi 。
python標準庫提供的獨立WSGI服務(wù)器稱為wsgiref。
#!/usr/bin/env python
#coding:utf-8
#導(dǎo)入wsgi模塊
from wsgiref.simple_server import make_server
def RunServer(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [bytes("welcome webserver".encode('utf8'))]
if __name__ == '__main__':
httpd = make_server('', 8000, RunServer)
print ("Serving HTTP on port 8000...")
httpd.serve_forever()
#接收請求
#預(yù)處理請求(封裝了很多http請求的東西)
到此這篇關(guān)于python web框架的總結(jié)的文章就介紹到這了,更多相關(guān)python web框架的整理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python OpenCV學習筆記直方圖反向投影的實現(xiàn)
這篇文章主要介紹了python OpenCV學習筆記直方圖反向投影的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02
用Python和MD5實現(xiàn)網(wǎng)站掛馬檢測程序
系統(tǒng)管理員通常從svn/git中檢索代碼,部署站點后通常首先會生成該站點所有文件的MD5值,如果上線后網(wǎng)站頁面內(nèi)容被篡改(如掛馬)等,可以比對之前生成MD5值快速查找去那些文件被更改,為了使系統(tǒng)管理員第一時間發(fā)現(xiàn),可結(jié)合crontab或nagios等工具2014-03-03
django項目中使用云片網(wǎng)發(fā)送短信驗證碼的實現(xiàn)
這篇文章主要介紹了django項目中使用云片網(wǎng)發(fā)送短信驗證碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01
翻轉(zhuǎn)數(shù)列python實現(xiàn),求前n項和,并能輸出整個數(shù)列的案例
這篇文章主要介紹了翻轉(zhuǎn)數(shù)列python實現(xiàn),求前n項和,并能輸出整個數(shù)列的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05

