python web框架的總結
1、Django
Django可能是最具代表性的Python框架,是遵循MMVC結構模式的開源框架。其名字來自DjangoReinhardt,法國作曲傢和吉他演奏傢,很多人認為他是歷史上最偉大的吉他演奏傢。位於堪薩斯州的Lawrence城市的LawrenceJournal-World報社有兩名程序員,AdrianHolovaty和SimonWillison,他們在2003年開發瞭Django,為報紙開發瞭網絡程序。
2、TurboGears
TurboGears是SQLAlchemy、WebOb、Repoze、Genshi等著名Python項目構築的框架。從某種意義上說,TurboGears是將多個已經建立的開放平臺粘在一起。和Django一樣,采用MVC結構。最近還包含瞭最小模式,可以作為微框架。
3、Flask
Flask是一個基於Jinja2和Werkzeug的python微框架,類似於其他框架。是BSD授權的,有少量限制的免費軟件許可。使用Flask的網站包括領英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(): #創建sock對象 sock = socket.socket() #監聽80端口 sock.bind(('localhost',8000)) #最大連接數 sock.listen(5) print('welcome nginx') #循環 while True: #等待用戶的連接,默認accept阻塞當有請求的時候往下執行 connection,address = sock.accept() #把連接交給handle_request函數 handle_request(connection) #關閉連接 connection.close() if __name__ == '__main__': main()
基於wsgi
WSGI,全稱 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,是為 Python 語言定義的 Web 服務器和 Web 應用程序或框架之間的一種簡單而通用的接口。自從 WSGI 被開發出來以後,許多其它語言中也出現瞭類似接口。
WSGI 的官方定義是,the Python Web Server Gateway Interface。從名字就可以看出來,這東西是一個Gateway,也就是網關。網關的作用就是在協議之間進行轉換。
WSGI 是作為 Web 服務器與 Web 應用程序或應用框架之間的一種低級別的接口,以提升可移植 Web 應用開發的共同點。WSGI 是基於現存的 CGI 標準而設計的。
很多框架都自帶瞭 WSGI server ,比如 Flask,webpy,Django、CherryPy等等。當然性能都不好,自帶的 web server 更多的是測試用途,發佈時則使用生產環境的 WSGI server或者是聯合 nginx 做 uwsgi 。
python標準庫提供的獨立WSGI服務器稱為wsgiref。
#!/usr/bin/env python #coding:utf-8 #導入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() #接收請求 #預處理請求(封裝瞭很多http請求的東西)
到此這篇關於python web框架的總結的文章就介紹到這瞭,更多相關python web框架的整理內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python Socket編程詳解
- 淺談Python項目的服務器部署
- uwsgi+nginx代理Django無法訪問靜態資源的解決
- Python安裝和配置uWSGI的詳細過程
- centos+nginx+uwsgi部署django項目上線