文章目录- 1. Web框架简介
- 1.1 MVC
- 1.2 模板引擎
- 2. 常用 Python Web 框架
- 3. 虚拟环境
- 4. 部署方式
- 1.1 MVC
- 1.2 模板引擎
learning from 《python web开发从入门到精通》
1. Web框架简介
简化 web 开发的软件框架
一般都支持:管理路由,支持数据库,MVC,ORM,模板引擎,管理会话和Cookies
1.1 MVC
Model View Controller
一种设计模式- Model 封装数据和处理方法
- View 是数据的 HTML 展现
- Controller 负责响应请求,协调 Model 和 View
1.2 模板引擎
使用模板引擎可以在 HTML 页面中使用变量 如 <title>{{title}}</title>
{{}}
变量会被替换成相应的值,使得界面与数据分离,业务代码与逻辑代码分离,提高复用和开发效率
2. 常用 Python Web 框架
只要遵守 WSGI(服务器网管接口)
规则,就可以自主开发 Web 框架
Django
最广泛,社区最大,最多的包,但是系统耦合度高,替换内置功能麻烦,学习曲线陡峭Flask
轻量级,容易扩展Tornado
不单单是框架,还是 web 服务器,为了解决实时服务诞生的(使用了异步非阻塞IO)
,运行速度非常快FastAPI
现代的高性能框架,使用了类型提示,能减少开发错误,自动生成 API 文档
3. 虚拟环境
不同的应用程序使用不同的环境依赖,避免升级后不兼容
virtualenv
conda
pip
导出环境包的明细pip freeze > requirements.txt
新环境下一次性安装pip install -r requirements.txt
pip 加速:-i 清华源地址
或者 配置 pip.ini
文件,添加源地址,自行网上搜索
4. 部署方式
WSGI
- 接受请求的服务器 处理请求的 APP
Gunicorn
- 常用的 WSGI Server 容器 有
Gunicorn
,uWSGI
,Gunicorn 简单,占用资源少,更快
Nginx
- 是一个 web 服务器,反向代理工具,通常来部署静态文件
- 可以直接处理静态文件请求,绕过APP服务器,避免占用运算资源,能缓存静态资源,提速
- 抗并发能力,缓存住瞬时高并发请求,然后慢慢在后端处理
- 多台服务器,可以提供负载均衡和反向代理
Supervisor
- 进程管理工具,看守进程,异常退出后,立即启动进程
购买云服务器 https://cloud.tencent.com/product/cvm
阿里,腾讯,百度,华为都可以
pip install gunicorn
gunicorn -w 3 -b 0.0.0.0:9100 run:app
w进程数,b绑定主机和端口,run是 run.py 文件,app 是py文件里的定义应用
也可以 -c
指定配置文件 如 xxxconf.py
Nginx https://www.runoob.com/linux/nginx-install-setup.html windows下安装以及配置nginx
代码语言:javascript复制pip install supervisor
supervisor 安装、配置、常用命令
使用云服务器玩一玩:
创建虚拟环境
编写 run_flask_hello_world.py
from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
return "hello michael!"
if __name__ == "__main__":
app.run()
代码语言:javascript复制gunicorn -w 1 -b 0.0.0.0:9100 run_flask_hello_world:app
[2021-12-03 12:05:05 0800] [23677] [INFO] Starting gunicorn 20.1.0
[2021-12-03 12:05:05 0800] [23677] [INFO] Listening at: http://0.0.0.0:9100 (23677)
[2021-12-03 12:05:05 0800] [23677] [INFO] Using worker: sync
[2021-12-03 12:05:05 0800] [23679] [INFO] Booting worker with pid: 23679
在公网上可以访问