Python Falcon 简明教程
Python Falcon - ASGI
ASGI 代表 Asynchronous Server Gateway Interface (根据其官方文档,它是 WSGI 的精神继承者),它为 Python Web 服务器、应用程序和框架增加了异步功能。
要运行异步 web 应用程序,我们需要一个 ASGI 应用程序服务器。常用的选择包括 −
-
Uvicorn
-
Daphne
-
Hypercorn
在本教程中,我们将在 async 示例中使用 Uvicorn 服务器。
Hello World - ASGI
Falcon 的 ASGI 相关功能在 falcon.asgi 模块中可用。因此,我们需要在开头将其导入。
import falcon
import falcon.asgi
虽然资源类与上一个示例中相同,但必须使用 async 关键字声明 on_get() 方法。我们必须获取 Falcon 的 ASGI 应用程序的实例。
app = falcon.asgi.App()
Example
因此,针对 ASGI 的 hellofalcon.py 如下所示:
import falcon
import falcon.asgi
class HelloResource:
async def on_get(self, req, resp):
"""Handles GET requests"""
resp.status = falcon.HTTP_200
resp.content_type = falcon.MEDIA_TEXT
resp.text = (
'Hello World'
)
app = falcon.asgi.App()
hello = HelloResource()
app.add_route('/hello', hello)
要运行该应用程序,请从命令行启动 Uvicorn 服务器,如下所示:
uvicorn hellofalcon:app –reload