Python Falcon 简明教程

Python Falcon - ASGI

ASGI 代表 Asynchronous Server Gateway Interface (根据其官方文档,它是 WSGI 的精神继承者),它为 Python Web 服务器、应用程序和框架增加了异步功能。

要运行异步 web 应用程序,我们需要一个 ASGI 应用程序服务器。常用的选择包括 −

  1. Uvicorn

  2. Daphne

  3. 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

Output

打开浏览器并访问 http://localhost:/8000/hello 。您将在浏览器窗口中看到响应。

asgi