FastAPI響應系列(二) 響應狀態碼
阿新 • • 發佈:2021-06-13
一、預設響應狀態碼
響應狀態碼用於伺服器返回給客戶端響應的狀態,常用的有:
- 200及以上 成功的響應
- 300及以上 重定向
- 400及以上 客戶端錯誤
- 500及以上 服務端錯誤
FastAPI的路徑操作中可以使用status_code引數來宣告HTTP狀態碼。FastAPI中可以通過狀態碼數字、狀態碼變數方式來使用。
1、狀態碼數字
from fastapi import FastAPI
app = FastAPI()
@app.post("/status_code/", status_code=200)
async def status_code():
return {"status_code": 200}
2、狀態碼變數
如果不記得具體的數字,此時可以使用提供的變數形式。
from fastapi import FastAPI, status
app = FastAPI()
@app.post("/status_attribute/", status_code=status.HTTP_200_OK)
async def status_code():
return {"status_code": status.HTTP_200_OK}
這與上面的數字效果是一樣的。兩種方式都可以,其表現形式如下:
二、自定義響應狀態碼
在某些情況下可能需要返回與預設狀態碼不同的狀態碼。比如,你希望返回預設的HTTP狀態碼200,但是如果資料不存在,你需要建立它並且返回建立的HTTP狀態碼201,此時你可以使用引數Response。
from fastapi import FastAPI, Response, status app = FastAPI() tasks = {"k1": "v1"} @app.put("/get_or_create_task/{task_id}", status_code=200) def get_or_create_task(task_id: str, response: Response): if task_id not in tasks: tasks[task_id] = "this task not in tasks before" response.status_code= status.HTTP_201_CREATED return tasks
此時訪問該api: