- 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 - Inspect 模組
- Python Falcon - Jinja2 模板
- Python Falcon - Cookies
- 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 - Uvicorn
Uvicorn 使用了 **uvloop** 和 **httptools** 庫。它還提供了對 HTTP/2 和 WebSockets 的支援,而這些是 WSGI 無法處理的。**uvloop** 類似於內建的 **asyncio** 事件迴圈。**httptools** 庫處理 http 協議。
Falcon 的 ASGI 相容應用程式在 Uvicorn 伺服器上啟動,使用以下命令:
Uvicorn hellofalcon:app – reload
**--reload** 選項啟用除錯模式,以便 app.py 中的任何更改都會自動反映到客戶端瀏覽器上並自動重新整理顯示。此外,還可以使用以下命令列選項:
| --host TEXT | 將套接字繫結到此主機。[預設 127.0.0.1] |
| --port INTEGER | 將套接字繫結到此埠。[預設 8000] |
| --uds TEXT | 繫結到 UNIX 域套接字。 |
| --fd INTEGER | 繫結到來自此檔案描述符的套接字。 |
| --reload | 啟用自動重新載入。 |
| --reload-dir PATH | 顯式設定重新載入目錄,預設為當前工作目錄。 |
| --reload-include TEXT | 在監視時包含檔案。預設情況下包含 '*.py' |
| --reload-exclude TEXT | 在監視檔案時排除。 |
| --reload-delay FLOAT | 上次檢查和下次檢查之間延遲,預設為 0.25 |
| --loop [auto|asyncio|uvloop] | 事件迴圈實現。[預設 auto] |
| --http [auto|h11|httptools] | HTTP 協議實現。[預設 auto] |
| --interface auto|asgi|wsgi | 選擇應用程式介面。[預設 auto] |
| --env-file PATH | 環境配置檔案。 |
| --log-config PATH | 日誌配置檔案。支援的格式為 **.ini, .json, .yaml。** |
| --version | 顯示 Uvicorn 版本並退出。 |
| --app-dir TEXT | 在指定的目錄中查詢 APP,預設為當前目錄 |
| --help | 顯示此訊息並退出。 |
Uvicorn 伺服器也可以從程式內部啟動,而不是使用上述命令列。為此,匯入 **uvicorn** 模組並呼叫 **uvicorn.run()** 方法,如下所示:
import uvicorn
if __name__ == "__main__":
uvicorn.run("hellofalcon:app", host="0.0.0.0", port=8000, reload=True)
相應地更改 hellofalcon.py 程式碼,並從命令提示符處執行。結果可以透過 curl 命令或瀏覽器驗證,如前所述。
廣告