如果使用 Python 编写 API,建议使用 FastAPI 或 Flask 框架,因为这两个框架开发 API 方便快捷,以 FastAPI 为例: 第 1 步,安装依赖 包含 FastAPI 框架及 hypercorn 依赖,hypercorn 是独立的 ASGI 服务器,方便 FastAPI 项目的部署 # FastAPI框架 pip3 install fastapi pip3 install hypercorn 5 步,服务器拉取代码 服务器中通过 git 拉取代码,并通过依赖文件一键安装所有依赖 # 安装依赖 pip3 install -r requirements.txt 第 6 步,运行服务 使用 hypercorn 运行 FastAPI 项目,使进程一直在后台运行,并保存运行日志信息 # 后台运行 # 保存日志,绑定端口号为:8000 # nohup hypercorn news:app --bind 0.0.0.0
安装和运行的命令如下: pip install daphne daphne app:App 和 uvicorn 命令类似,app 是文件名称,APP 是应用程序 Hypercorn Hypercorn 最初是框架 Quart 的一部分,然后被分离为独立的 ASGI 服务器 同样的,Hypercorn 支持 HTTP/1.1, HTTP/2, 以及 WebSockets. 安装和运行的命令如下: pip install hypercorn hypercorn app:App 说了 ASGI 服务器,接下来就是支持 ASGI 的框架了 ASGI 框架 您可以使用 Uvicorn ,Daphne 或 Hypercorn 运行任何 ASGI 框架 对于小型服务,您也可以直接编写 ASGI 应用程序。
如果使用 Python 编写 API,建议使用 FastAPI 或 Flask 框架,因为这两个框架开发 API 方便快捷,以 FastAPI 为例: 第 1 步,安装依赖 包含 FastAPI 框架及 hypercorn 依赖,hypercorn 是独立的 ASGI 服务器,方便 FastAPI 项目的部署 # FastAPI框架 pip3 install fastapi pip3 install hypercorn 第 5 步,服务器拉取代码 服务器中通过 git 拉取代码,并通过依赖文件一键安装所有依赖 # 安装依赖 pip3 install -r requirements.txt 第 6 步,运行服务 使用 hypercorn 运行 FastAPI 项目,使进程一直在后台运行,并保存运行日志信息 # 后台运行 # 保存日志,绑定端口号为:8000 # nohup hypercorn news:app --bind 0.0.0.0
服务器:常见的 ASGI 服务器包括 Uvicorn、Daphne、Hypercorn 等。你可以使用 pip 安装它们,并按照各自的文档进行配置和启动。
现在有三大主流的 ASGI 服务器, Daphne、Uvicorn (FastAPI 用的就是这个)、Hypercorn。
} 然后,使用 nohup 命令使服务脚本在后台运行 # 后台运行脚本 # 绑定8000端口 # 日志目录:/rsc.log nohup hypercorn test_api:app --bind
4 关于部署 部署 FastAPI 应用程序相对容易 Uvicorn FastAPI 文档推荐使用 Uvicorn 来部署应用( 其次是 hypercorn),Uvicorn 是一个基于 asyncio
异步应用: Daphne:twisted 实现 Hypercorn:基于 sans-io hyper,h11,h2,wsproto 实现 Uvicorn:基于 uvloop and httptools
安装: pip install fastapi 你还可能需要 ASGI 服务器用于生产环境,比如 Uvicorn 或 Hypercorn,那么安装一下: pip install uvicorn 一个简单的示例
这可以大大提高互操作性,因为您可以将 Uvicorn 切换到任何其他 ASGI 服务器(例如 Daphne 或 Hypercorn),也可以添加与ASGI兼容的工具,例如 python-socketio
这可以大大提高互操作性,因为您可以将 Uvicorn 切换到任何其他 ASGI 服务器(例如 Daphne 或 Hypercorn),也可以添加与ASGI兼容的工具,例如 python-socketio
Hypercorn Beta / https://pgjones.gitlab.io/hypercorn/index.html 一个基于 sans-io hyper, h11, h2 和 wsproto
它基于ASGI标准构建,底层通常运行在Uvicorn或Hypercorn等异步服务器上,因此能够充分利用Python的异步编程能力,实现高并发处理。
type': 'http.response.body', 'body': b'Hello, ASGI', }) ASGI的事件循环与IO模型 ASGI服务器(如Uvicorn、Hypercorn
¹⁰ 你可以使用另一个 ASGI 服务器,如 hypercorn 或 Daphne,而不是 uvicorn。查看官方 ASGI 文档中关于 实现 的页面获取更多信息。