FastAPI 基礎學習(二)開發環境安裝


作者:麥克煎蛋   出處:https://www.cnblogs.com/mazhiyong/ 轉載請保留這段聲明,謝謝!

 

一、依賴項

Python 3.6+

FastAPI 站在這些巨人的肩膀上

可選依賴項:

Pydantic需要:

Starlette需要:

FastAPI / Starlette需要:

  • uvicorn - 加載和服務程序需要.
  • orjson - ORJSONResponse 需要.

你可以通過以下命令安裝以上所有安裝包:

 pip install fastapi[all]

二、安裝

1、pip install fastapi

2、我們需要一個ASGI服務器,可以使用 Uvicorn 或 Hypercorn

     pip install uvicorn

三、示例

1、新建文件main.py

from fastapi import FastAPI

app = 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}

或者使用async定義函數:

from fastapi import FastAPI

app = 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}
View Code

2、運行

uvicorn main:app --reload

輸出結果:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
INFO: Application startup complete.

關於命令的解釋:

  • main: 文件 main.py (Python "模塊").
  • app:  main.py 創建的實例 app = FastAPI().
  • --reload: 代碼有改動時服務會自動重啟(僅適用於開發環境)

3、接口訪問

在瀏覽器中訪問地址:http://127.0.0.1:8000/items/5?q=somequery

我們可以看到響應結果:

{"item_id": 5, "q": "somequery"}

4、我們實際上實現了具有以下功能的一個API:

  • 接收以下路徑的HTTP請求: / 和 /items/{item_id}.
  • 這兩個路徑都接收GET請求.
  • 路徑 /items/{item_id} 具有一個路徑參數 item_id 並且類型必須為 int.
  • 路徑 /items/{item_id} 具有一個可選的查詢參數 q 並且類型必須為 str. 

四、交互式API文檔

我們訪問以下兩個地址,可獲取自動生成的交互式API文檔,並且當代碼改動時文檔會自動更新。方便我們的開發調試。

1、http://127.0.0.1:8000/docs (基於 Swagger UI)

2、http://127.0.0.1:8000/redoc (基於 ReDoc)

 


免責聲明!

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



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