Python Falcon - ASGI



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

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

  • Uvicorn
  • Daphne
  • Hypercorn

我们将在本教程的 异步示例中使用 Uvicorn 服务器。

Hello World - ASGI

Falcon 的 ASGI 相关功能在 falcon.asgi 模块中提供。因此,我们需要在开始时导入它。

import falcon
import falcon.asgi

虽然资源类与上一个示例中保持相同,但 on_get() 方法必须用 async 关键字声明。我们必须获取 Falson 的 ASGI 应用实例。

app = falcon.asgi.App()

示例

因此,用于 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

输出

打开浏览器并访问 https://127.0.0.1:/8000/hello。你将在浏览器窗口中看到响应。

ASGI
广告