Python wsgi和web框架
什麼是WSGI
- Python Web Server Gateway Interface(pep3333)
- 解決Python Web Server 亂象mod_python,CGI,FastCGI等
- 描述了Web Server(Gunicorn/uwsgi)如何與web框架(Flask/Django)交互,web框架如何處理請求
總:定義一個web框架的規範,有了規範可以讓任意的web 框架泡在web server上。
Python Web框架對比
Django vs Flask vs Tornado
- Django:大而全,內置ORM、Admin等插件、第三方插件多
- Flask:微框架,插件機制,比較靈活
- Tornado:異步支持微框架和異步網絡庫
什麼是MVC模式
MVC:Model、View、Controller,出現這幾層主要原因還是爲了解耦
- Model:負責業務對象和數據庫的交互(ORM)
- VIew:負責與用戶交互展示
- Controller:接受請求參數調用模型和視圖來完成請求
什麼是ORM
- 用於實現業務對象與數據表中的字段映射
- 優勢:代碼更加面向對象、代碼量更少、靈活性更高、提升開發效率
- 缺點:拼接對象比較耗時,有一定性能影響(優先使用ORM框架提升開發效率和可維護性)
一個web框架有哪些部分組成
- 中間件:用於請求之前和請求之後做一些處理(比如記錄日記)
- 路由、表單驗證、權限認證、ORM、視圖函數、模板渲染、序列化
- 第三方插件:redis,restful支持等
什麼是Gunicorn
- 純python編寫的高性能WSGI Server
- pre-fork預先分配多個worker進程處理請求(master-slave)
- 支持多種worker:Sync/Async(Gevent)/Tornado/AsyncIO