- Python Falcon 教程
- Python Falcon - 主頁
- Python Falcon - 介紹
- Python Falcon - 環境設定
- Python Falcon - WSGI vs ASGI
- Python Falcon - Hello World(WSGI)
- Python Falcon - Waitress
- Python Falcon - ASGI
- Python Falcon - Uvicorn
- Python Falcon - API 測試工具
- 請求和響應
- Python Falcon - 資源類
- Python Falcon - 應用類
- Python Falcon - 路由
- Falcon - 字尾響應方
- Python Falcon - 檢查模組
- Python Falcon - Jinja2 模板
- Python Falcon - Cookie
- Python Falcon - 狀態碼
- Python Falcon - 錯誤處理
- Python Falcon - 鉤子
- Python Falcon - 中介軟體
- Python Falcon - CORS
- Python Falcon - WebSocket
- Python Falcon - Sqlalchemy 模型
- Python Falcon - 測試
- Python Falcon - 部署
- Python Falcon 有用資源
- Python Falcon - 快速指南
- Python Falcon - 有用資源
- Python Falcon - 討論
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。你將在瀏覽器視窗中看到響應。
廣告