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://:/8000/hello。你將在瀏覽器視窗中看到響應。

ASGI
廣告
© . All rights reserved.