FastApi


官方文檔: https://fastapi.tiangolo.com/

1、安裝第三方庫老生常談了,使用 pip 或者 pipenv 即可安裝 FastApi:

pip install fastapi
pipenv install fastapi

2、安裝后,來創建我們的第一個 API:

from fastapi import FastAPI

app = FastAPI()


@app.get('/')
def index():
    return {'message': '你已經正確創建 FastApi 服務!'}

這里的寫法跟 Flask 幾乎一致。只不過在 Flask 中,我們定義路由的裝飾器為 @app.route('/')。而這里寫為 @app.get('/')

寫好代碼以后,使用uvicorn來運行 FastApi。首先使用pip或者pipenv安裝uvicorn:

pip install uvicorn
pipenv install uvicorn

然后執行命令:

uvicorn main:app --reload

其中main表示我們的代碼文件為main.py,app表示我們初始化的 FastApi 對象的名字。--reload參數表示在修改了代碼以后立即生效,不需要重啟。

運行后,訪問 http://127.0.0.1:8000 可以看到接口已經正確返回了 JSON 格式的數據。

3、定義一個帶參數的 GET 方法:

@app.get('/query/{uid}')
def query(uid):
    msg = f'你查詢的 uid 為:{uid}'
    return {'success': True, 'msg': msg}

如果想限定 uid 只能是數字,不能是字符串怎么辦呢?你只需要多加 4 個字符:

@app.get('/query/{uid}')
def query(uid: int):
    msg = f'你查詢的 uid 為:{uid}'
    return {'success': True, 'msg': msg}

4、定義一個資源的 POST 方法。

在使用 Flask 的時候,我們需要手動驗證用戶 POST 提交上來的數據是什么格式的,字段對不對。

但使用 FastApi 的時候,我們只需要類型標注就能解決所有問題。首先我們導入 from pydantic import BaseModel ,然后繼承BaseModel實現我們允許 POST 方法提交上來的數據字段和格式:

from pydantic import BaseModel

app = FastAPI()


class People(BaseModel):
    name: str
    age: int
    address: str
    salary: float

People這個類通過類型標注,指定了它里面的 4 個字段和他們的類型。現在來實現 POST 方法:

@app.post('/insert')
def insert(people: People):
    age_after_10_years = people.age + 10
    msg = f'這個人的名字是:{people.name},十年后,此人年齡:{age_after_10_years}'
    return {'success': True, 'msg': msg}

insert函數的參數people通過類型標注指定為People類型。

當我們使用 POST 方式提交數據時,FastApi 自動會以People中定義的字段為基准來校驗數據,發現不對就返回報錯信息。

另外,FastApi 會自動幫我們生成接口文檔,訪問http://127.0.0.1:8000/docs,看到接口文檔已經生成好了。

參考—— https://mp.weixin.qq.com/s/42-jEWAXgCswEXx-AKMD2g


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM