python web框架基础
文章目錄
- 1. Web框架簡介
- 1.1 MVC
- 1.2 模板引擎
- 2. 常用 Python Web 框架
- 3. 虛擬環(huán)境
- 4. 部署方式
learning from 《python web開發(fā)從入門到精通》
1. Web框架簡介
簡化 web 開發(fā)的軟件框架
一般都支持:管理路由,支持數(shù)據(jù)庫,MVC,ORM,模板引擎,管理會話和Cookies
1.1 MVC
- Model View Controller 一種設(shè)計模式
- Model 封裝數(shù)據(jù)和處理方法
- View 是數(shù)據(jù)的 HTML 展現(xiàn)
- Controller 負責(zé)響應(yīng)請求,協(xié)調(diào) Model 和 View
1.2 模板引擎
使用模板引擎可以在 HTML 頁面中使用變量 如 <title>{{title}}</title>
- {{}} 變量會被替換成相應(yīng)的值,使得界面與數(shù)據(jù)分離,業(yè)務(wù)代碼與邏輯代碼分離,提高復(fù)用和開發(fā)效率
2. 常用 Python Web 框架
只要遵守 WSGI(服務(wù)器網(wǎng)管接口) 規(guī)則,就可以自主開發(fā) Web 框架
- Django 最廣泛,社區(qū)最大,最多的包,但是系統(tǒng)耦合度高,替換內(nèi)置功能麻煩,學(xué)習(xí)曲線陡峭
- Flask 輕量級,容易擴展
- Tornado 不單單是框架,還是 web 服務(wù)器,為了解決實時服務(wù)誕生的(使用了異步非阻塞IO),運行速度非常快
- FastAPI 現(xiàn)代的高性能框架,使用了類型提示,能減少開發(fā)錯誤,自動生成 API 文檔
3. 虛擬環(huán)境
不同的應(yīng)用程序使用不同的環(huán)境依賴,避免升級后不兼容
- virtualenv
- conda
- pip 導(dǎo)出環(huán)境包的明細 pip freeze > requirements.txt
新環(huán)境下一次性安裝 pip install -r requirements.txt
pip 加速:-i 清華源地址 或者 配置 pip.ini 文件,添加源地址,自行網(wǎng)上搜索
4. 部署方式
WSGI
- 接受請求的服務(wù)器 + 處理請求的 APP
Gunicorn
- 常用的 WSGI Server 容器 有 Gunicorn ,uWSGI,Gunicorn 簡單,占用資源少,更快
Nginx
- 是一個 web 服務(wù)器,反向代理工具,通常來部署靜態(tài)文件
- 可以直接處理靜態(tài)文件請求,繞過APP服務(wù)器,避免占用運算資源,能緩存靜態(tài)資源,提速
- 抗并發(fā)能力,緩存住瞬時高并發(fā)請求,然后慢慢在后端處理
- 多臺服務(wù)器,可以提供負載均衡和反向代理
Supervisor
- 進程管理工具,看守進程,異常退出后,立即啟動進程
購買云服務(wù)器 https://cloud.tencent.com/product/cvm阿里,騰訊,百度,華為都可以
pip install gunicorn gunicorn -w 3 -b 0.0.0.0:9100 run:app w進程數(shù),b綁定主機和端口,run是 run.py 文件,app 是py文件里的定義應(yīng)用
也可以 -c 指定配置文件 如 xxxconf.py
Nginx
https://www.runoob.com/linux/nginx-install-setup.html
windows下安裝以及配置nginx
pip install supervisor
supervisor 安裝、配置、常用命令
使用云服務(wù)器玩一玩:
創(chuàng)建虛擬環(huán)境
編寫 run_flask_hello_world.py
在公網(wǎng)上可以訪問
總結(jié)
以上是生活随笔為你收集整理的python web框架基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1838. 最高频元素
- 下一篇: LeetCode 2190. 数组中紧跟