Python Falcon 简明教程
Python Falcon - Uvicorn
Uvicorn 使用 uvloop 和 httptools 库。它还提供对 HTTP/2 和 Websocket 的支持,而 WSGI 无法处理它们。 uvloop 类似于内置 asyncio 事件循环。 httptools 库处理 http 协议。
Falcon 的 ASGI 兼容应用程序在 Uvicorn 服务器上使用以下命令启动:
Uvicorn hellofalcon:app – reload
--reload 选项启用调试模式,以便 app.py 中的任何更改都将自动反映,并且客户端浏览器上的显示将自动刷新。此外,可以使用以下命令行选项:
--host TEXT |
将套接字绑定到此主机。[默认 127.0.0.1] |
--port INTEGER |
将套接字绑定到此端口。[默认 8000] |
--uds TEXT |
绑定到 UNIX 域套接字。 |
--fd INTEGER |
从该文件描述符绑定到套接字。 |
--reload |
Enable auto-reload. |
--reload-dir PATH |
明确设置重新加载目录,默认当前工作目录。 |
--reload-include TEXT |
在 watch 时包含文件。默认包含 *.py |
--reload-exclude TEXT |
在 watch 文件时排除。 |
--reload-delay FLOAT |
前一次和下一次检查之间的延迟(默认 0.25) |
--loop [auto |
asyncio |
uvloop] |
事件循环实现。[默认自动] |
--http [auto |
h11 |
httptools] |
HTTP 协议实现。[默认自动] |
--interface auto |
asgi |
wsgi |
选择应用程序接口。[默认自动] |
--env-file PATH |
Environment configuration file. |
--log-config PATH |
日志配置文件。支持的格式 .ini, .json, .yaml. |
--version |
显示 Uvicorn 版本并退出。 |
--app-dir TEXT |
在指定目录(默认当前目录)中查找 APP |
--help |
显示此消息并退出。 |
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 命令或在浏览器中验证结果,如前所述。