作者:麥克煎蛋 出處:https://www.cnblogs.com/mazhiyong/ 轉載請保留這段聲明,謝謝!
讀取Cookie信息
基於Query、Path等模塊同樣的模式,我們可以利用Cookie模塊來聲明cookies。Cookie是Query、Path的姐妹類,它們都繼承自Param類。
同樣我們也可以便捷的定義Cookie模塊的參數信息。
1、導入模塊
from fastapi import Cookie
2、添加參數信息
參數信息的結構與Query、Path等模塊完全相同。
ads_id: str = Cookie(None)
完整示例:
from fastapi import Cookie, FastAPI app = FastAPI() @app.get("/items/") async def read_items(*, ads_id: str = Cookie(None)): return {"ads_id": ads_id}
返回Cookie信息
我們可以在Response中返回Cookie信息給終端。
1、使用Response參數
我們可以在路徑操作函數中聲明Response
參數,然后給這個臨時的Response
對象設置cookie信息。
FastAPI通過這個臨時的Response
對象解析出cookie信息,然后放入到最終返回的Response
對象中。
我們也可以在依賴項中使用Response參數,然后設置cookie信息。
from fastapi import FastAPI, Response app = FastAPI() @app.post("/cookie-and-object/") def create_cookie(response: Response): response.set_cookie(key="fakesession", value="fake-cookie-session-value") return {"message": "Come to the dark side, we have cookies"}
2、直接返回Response
我們也可以在直接返回的Response對象中設置cookie信息。
from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
@app.post("/cookie/")
def create_cookie():
content = {"message": "Come to the dark side, we have cookies"}
response = JSONResponse(content=content) response.set_cookie(key="fakesession", value="fake-cookie-session-value") return response