- Python Falcon教程
- Python Falcon - 主页
- Python Falcon - 简介
- Python Falcon - 环境设置
- Python Falcon - WSGI 与 ASGI
- Python Falcon - Hello World(WSGI)
- Python Falcon - 女服务员
- Python Falcon - ASGI
- 蟒蛇Falcon - Uvicorn
- Python Falcon - API 测试工具
- 请求与响应
- Python Falcon - 资源类
- Python Falcon - 应用程序类
- Python Falcon - 路由
- Falcon - 后缀响应者
- Python Falcon - 检查模块
- Python Falcon - Jinja2 模板
- Python Falcon - cookie
- Python Falcon - 状态代码
- Python Falcon - 错误处理
- Python Falcon - 钩子
- Python Falcon - 中间件
- Python Falcon - CORS
- Python Falcon - Websocket
- Python Falcon - Sqlalchemy 模型
- Python Falcon - 测试
- Python Falcon - 部署
- Python Falcon 有用资源
- Python Falcon - 快速指南
- Python Falcon - 有用的资源
- Python Falcon - 讨论
蟒蛇Falcon - Uvicorn
Uvicorn 使用uvloop和httptools库。它还提供对 HTTP/2 和 WebSockets 的支持,这是 WSGI 无法处理的。uvloop类似于内置的asyncio事件循环。httptools库处理 http 协议。
Falcon 的 ASGI 兼容应用程序使用以下命令在 Uvicorn 服务器上启动 -
Uvicorn hellofalcon:app – reload
--reload选项启用调试模式,这样 app.py 中的任何更改都会自动反映,并且客户端浏览器上的显示会自动刷新。此外,可以使用以下命令行选项 -
--主机文本 | 将套接字绑定到该主机。[默认127.0.0.1] |
--端口整数 | 将套接字绑定到此端口。[默认8000] |
--uds 文本 | 绑定到 UNIX 域套接字。 |
--fd 整数 | 从此文件描述符绑定到套接字。 |
--重新加载 | 启用自动重新加载。 |
--reload-dir 路径 | 显式设置重新加载目录,默认当前工作目录。 |
--reload-包含文本 | 观看时包含文件。默认情况下包含“* .py ” |
--reload-排除文本 | 监视文件时排除。 |
--重新加载延迟浮动 | 上一次检查和下一次检查之间的延迟默认 0.25 |
--loop [自动|异步|uvloop] | 事件循环实现。[默认自动] |
--http [自动|h11|httptools] | HTTP协议的实现。[默认自动] |
--接口自动|asgi|wsgi | 选择应用程序界面。[默认自动] |
--env-文件路径 | 环境配置文件。 |
--log-config 路径 | 记录配置文件。支持的格式.ini、.json、.yaml。 |
- 版本 | 显示 Uvicorn 版本并退出。 |
--app-dir 文本 | 在指定目录默认当前目录下查找APP |
- 帮助 | 显示此消息并退出。 |
Uvicorn 服务器也可以从程序内部启动,而不是通过上面的命令行。为此,导入uvicorn模块并调用uvicorn.run()方法,如下所示 -
import uvicorn if __name__ == "__main__": uvicorn.run("hellofalcon:app", host="0.0.0.0", port=8000, reload=True)
相应地更改 hellofalcon.py 代码,并从命令提示符执行相同的代码。结果可以通过curl命令或在浏览器中验证,如前所述。