文章目錄
- 為什么選擇FastAPI?
- FastAPI支持的功能
- FastAPI的安裝
- 第一個FastAPI應用
- 運行應用
為什么選擇FastAPI?
- python web開發:
- Django: 適合大型復雜項目;
- Flask:適合靈活開發,搭建小型項目;
- FastAPI: 兼具開發快捷和高性能的特點;
- 編譯時檢查數據類型;
- 支持異步;
FastAPI支持的功能
-
自動生成API文檔:依據類型提示和OpenAPI規范,自動生成詳細API文檔,還提供Swagger UI和ReDoc可視化界面,方便測試與對接。
- Swagger UI:例如http://127.0.0.1:8000/docs
- ReDoc:例如http://127.0.0.1:8000/redoc
-
數據驗證與序列化:內置數據驗證機制,按類型提示驗證輸入數據,自動返回錯誤信息。還能輕松實現數據的序列化和反序列化。
-
依賴注入:支持依賴注入模式,分離通用功能,提高代碼復用性和可維護性,避免重復代碼。
-
支持多種請求方法:全面支持GET、POST、PUT、DELETE等HTTP請求方法,適配各種業務場景。
FastAPI的安裝
# fastapi項目是一個Web應用
pip install fastapi
# UVicorn 是一個支持 ASGI 的 Web 服務器,它能夠運行符合 ASGI 規范的 Python Web 應用程序,例如 FastAPI 應用。
pip install uvicorn
第一個FastAPI應用
from fastapi import FastAPI# 創建一個fastapi實例
app = FastAPI()@app.get("/")
def root():# 返回一個包含信息的字典return {"message": "歡迎來到FastAPI的世界"}
運行應用
-
路徑區分
-
當工作目錄跟main.py文件路徑一致時,運行以下命令
uvicorn main:app --reload
-
當工作目錄跟main.py文件路徑不一致時,main:app中的main要替換成從當前工作目錄到main.py的相對路徑,如下:
# 代表工作目錄是在app01文件夾那一層,然后main.py在文件夾app01文件夾里面注意中間是用"."連接,類似與包的導入 uvicorn app01.main:app --reload
-
-
uvicorn:是我們之前安裝的ASGI服務器
-
main:app:表示我們要運行“main.py”文件中的app實例。
-
reload:它會讓Uvicorn在代碼發生變化時自動重新加載應用,