Python 编写简易 Web 应用框架实战指南
写应用框架需要写底层服务器吗?
开发 Web 应用框架时,是否需要自己实现底层服务器取决于是否遵循标准。如果应用框架不参考 WSGI (Web Server Gateway Interface) 标准,那么确实需要定义一套属于自己的服务器协议。但这种方式通常不必要,专业的事情应该交给专业的工具来做。
我们将编写符合 WSGI 标准的框架,因此只需要引入符合该标准的服务器即可。
常见的 WSGI 服务器
- uWSGI:使用 C 语言编写的应用程序容器,具有广泛的应用场景。除了支持
WSGI外,还支持 HTTP、WebSocket 等协议。它提供了多进程、多线程、协程、异步 IO 等多种运行模式,并支持内存共享、定时任务、快速热部署等高级功能。 - Waitress:纯 Python 编写的轻量级、可靠且支持多线程的
WSGI服务器,适合运行 Python Web 应用。
本文将以 uWSGI 为例进行讲解。
uWSGI 基本使用
安装 uWSGI
在 Python 环境中,直接使用 pip 安装即可:
pip3 install uwsgi
配置 uWSGI
uWSGI 支持多种配置方式,可以直接在命令行指定参数,也可以写入配置文件。
命令行启动示例
uwsgi --http :8080 --wsgi-file myapp.py --callable app
配置文件启动
可以将上述命令写入 myapp.ini 文件中:
[uwsgi]
http = :8080
wsgi-file = myapp.py
callable = app
然后通过以下命令加载配置启动:
uwsgi --ini myapp.ini
此外,uWSGI 还支持 XML、YAML、JSON 等格式,甚至可以通过 URL 读取配置文件。
uWSGI 常用配置项
-
指定启动用户和用户组
uid=root gid=root生产环境建议不要使用 root 运行,应创建专用用户。
-
指定项目名称
project=myproject -
设置进程数 需要先开启 master 进程,再设置 worker 数量。一般建议进程数不超过 CPU 核数。
master=True process=4


