python web框架的總結(jié)
Django可能是最具代表性的Python框架,是遵循MMVC結(jié)構(gòu)模式的開(kāi)源框架。其名字來(lái)自DjangoReinhardt,法國(guó)作曲家和吉他演奏家,很多人認(rèn)為他是歷史上最偉大的吉他演奏家。位于堪薩斯州的Lawrence城市的LawrenceJournal-World報(bào)社有兩名程序員,AdrianHolovaty和SimonWillison,他們?cè)?003年開(kāi)發(fā)了Django,為報(bào)紙開(kāi)發(fā)了網(wǎng)絡(luò)程序。
2、TurboGearsTurboGears是SQLAlchemy、WebOb、Repoze、Genshi等著名Python項(xiàng)目構(gòu)筑的框架。從某種意義上說(shuō),TurboGears是將多個(gè)已經(jīng)建立的開(kāi)放平臺(tái)粘在一起。和Django一樣,采用MVC結(jié)構(gòu)。最近還包含了最小模式,可以作為微框架。
3、FlaskFlask是一個(gè)基于Jinja2和Werkzeug的python微框架,類(lèi)似于其他框架。是BSD授權(quán)的,有少量限制的免費(fèi)軟件許可。使用Flask的網(wǎng)站包括領(lǐng)英LinkedIN和Pinterest。
知識(shí)點(diǎn)擴(kuò)展:
基于socket
自己處理請(qǐng)求
#!/usr/bin/env python3#coding:utf8import socketdef handle_request(client): #接收請(qǐng)求 buf = client.recv(1024) print(buf) #返回信息 client.send(bytes(’<h1>welcome liuyao webserver</h1>’,’utf8’))def main(): #創(chuàng)建sock對(duì)象 sock = socket.socket() #監(jiān)聽(tīng)80端口 sock.bind((’localhost’,8000)) #最大連接數(shù) sock.listen(5) print(’welcome nginx’) #循環(huán) while True: #等待用戶(hù)的連接,默認(rèn)accept阻塞當(dāng)有請(qǐng)求的時(shí)候往下執(zhí)行 connection,address = sock.accept() #把連接交給handle_request函數(shù) handle_request(connection) #關(guān)閉連接 connection.close()if __name__ == ’__main__’: main()
基于wsgi
WSGI,全稱(chēng) Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是為 Python 語(yǔ)言定義的 Web 服務(wù)器和 Web 應(yīng)用程序或框架之間的一種簡(jiǎn)單而通用的接口。自從 WSGI 被開(kāi)發(fā)出來(lái)以后,許多其它語(yǔ)言中也出現(xiàn)了類(lèi)似接口。
WSGI 的官方定義是,the Python Web Server Gateway Interface。從名字就可以看出來(lái),這東西是一個(gè)Gateway,也就是網(wǎng)關(guān)。網(wǎng)關(guān)的作用就是在協(xié)議之間進(jìn)行轉(zhuǎn)換。
WSGI 是作為 Web 服務(wù)器與 Web 應(yīng)用程序或應(yīng)用框架之間的一種低級(jí)別的接口,以提升可移植 Web 應(yīng)用開(kāi)發(fā)的共同點(diǎn)。WSGI 是基于現(xiàn)存的 CGI 標(biāo)準(zhǔn)而設(shè)計(jì)的。
很多框架都自帶了 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。當(dāng)然性能都不好,自帶的 web server 更多的是測(cè)試用途,發(fā)布時(shí)則使用生產(chǎn)環(huán)境的 WSGI server或者是聯(lián)合 nginx 做 uwsgi 。
python標(biāo)準(zhǔn)庫(kù)提供的獨(dú)立WSGI服務(wù)器稱(chēng)為wsgiref。
#!/usr/bin/env python#coding:utf-8#導(dǎo)入wsgi模塊from wsgiref.simple_server import make_serverdef 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() #接收請(qǐng)求 #預(yù)處理請(qǐng)求(封裝了很多http請(qǐng)求的東西)
到此這篇關(guān)于python web框架的總結(jié)的文章就介紹到這了,更多相關(guān)python web框架的整理內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. React實(shí)現(xiàn)一個(gè)倒計(jì)時(shí)hook組件實(shí)戰(zhàn)示例2. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera3. ASP常用日期格式化函數(shù) FormatDate()4. ASP基礎(chǔ)入門(mén)第三篇(ASP腳本基礎(chǔ))5. CSS3實(shí)現(xiàn)動(dòng)態(tài)翻牌效果 仿百度貼吧3D翻牌一次動(dòng)畫(huà)特效6. XML解析錯(cuò)誤:未組織好 的解決辦法7. 三個(gè)不常見(jiàn)的 HTML5 實(shí)用新特性簡(jiǎn)介8. 小技巧處理div內(nèi)容溢出9. html清除浮動(dòng)的6種方法示例10. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
