首頁>技術>

fastapi是高效能的web框架。他的主要特點是:

快速編碼減少人為bug直觀簡易具有互動式文件基於API的開放標準(並與之完全相容):OpenAPI(以前稱為Swagger)和JSON Schema。

技術背景:python3.6+、Starlette、Pydantic

官方文件地址:https://fastapi.tiangolo.com/

安裝
pip install fastapipip install uvicorn
quick start
# main.pyfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def read_root():    return {"Hello": "World"}@app.get("/items/{item_id}")def read_item(item_id: int, q: str = None):    return {"item_id": item_id, "q": q}

或者

from fastapi import FastAPIapp = FastAPI()@app.get("/")async def read_root():    return {"Hello": "World"}@app.get("/items/{item_id}")async def read_item(item_id: int, q: str = None):    return {"item_id": item_id, "q": q}
執行
uvicorn main:app --reload

看到如下提示,證明執行成功

main: 表示app所在檔名app:FastAPI例項reload:debug模式,可以自動重啟

試著請求http://127.0.0.1:8000/items/5?q=somequery,會看到如下返回

{"item_id": 5, "q": "somequery"}
互動文件

試著開啟http://127.0.0.1:8000/docs

API文件

試著開啟http://127.0.0.1:8000/redoc

update

透過上面的例子,我們已經用fastapi完成了第一個web服務,現在我們再新增一個介面

from fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()class Item(BaseModel):    name: str    price: float    is_offer: bool = [email protected]("/")def read_root():    return {"Hello": "World"}@app.get("/items/{item_id}")def read_item(item_id: int, q: str = None):    return {"item_id": item_id, "q": q}@app.put("/items/{item_id}")def update_item(item_id: int, item: Item):    return {"item_name": item.name, "item_id": item_id}

此時會發現,服務自動重啟了,這是因為我們在啟動命令後添加了--reload。再次檢視文件,發現同樣發生了改變。到此,你已經可以快速的用fastapi搭建起服務了~

9
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Vuejs的初體驗