FastAPI 是一個用於構建 API 的現代、快速(高性能)的 web 框架,使用 Python 3.6+ 並基於標准的 Python 類型提示。
依賴
Python3.6及更高版本
- Starlette: 負責web部分
- Pydantic: 負責數據部分
安裝
pip install fastapi
需要一個ASGI服務器,生產環境可以使用Uvicorn 或者 Hypercorn
pip install uvicorn
使用
1 from typing import Optional 2 3 from fastapi import FastAPI 4 5 app = FastAPI() 6 7 8 @app.get("/") 9 def read_root(): 10 return {"Hello": "World"} 11 12 13 @app.get("/items/{item_id}") 14 def read_item(item_id: int, q: Optional[str] = None): 15 return {"item_id": item_id, "q": q}
啟動:uvicorn main:app --reload
uvicorn main:app 解釋
- main:main.py 文件(Python 模塊)
- app: 在main.py文件中通過app=FastAPI()創建的對象
- --reload:讓服務器在更新代碼后重新啟動,和Django/Flask/Tornado中DEBUG=True模式一樣
訪問:http://127.0.0.1:8000/items/1?q=wq 返回結果如下
{"item_id":1,"q":"wq"}
通過 / 和 /items/{item_id} 接收HTTP請求
以上路徑都接受GET操作
/items/{item_id} 路徑有一個路徑參數item_id並且應該為int類型
/items/{item_id} 路徑有個可選str類型的查詢參數q
交互式API文檔
http://127.0.0.1:8000/docs 會自動生成交互式API文檔(由Swagger生成)
「Try it out」按鈕,之后你可以填寫參數並直接調用 API:
可選API文檔
訪問: http://127.0.0.1:8000/redoc (由ReDoc生成)
菜鳥級入門FastAPI,還需小伙伴們自行搭建,多寫多多練,此文僅供大家參考
good lucky !