今天这篇文章,聊一下python在web开发上的一些基础实现,阐述下自己理解中的WSGI、ASGI,以及拿uvicorn+FastAPI的组合举个ASGI应用的例子。
WSGI
python的web服务的诞生,其实追溯到一种机制,叫做WSGI,全称Web Server Gateway Interface。WSGI的提案来源于PEP-333,可以理解为一种python-web-server和python-web-app的接口通信标准。在这种场景下,python的web服务呈现以下的工作模式:
python-web-app,也就是web应用层,实现WSGI接口,用作web请求的handler- 用户向
python-web-server发送web请求 python-web-server,又称作WSGI Server,解析请求数据,整理当前session的环境信息python-web-server加载python-web-app,调用python-web-app实例的WSGI接口,处理请求python-web-app处理完请求,返回结果给到python-web-serverpython-web-server写回返回结果,给回用户
代码上是这样的表现,以官方提案的例子为例: