1. 返回带有 Cookie 的 JSON 响应:
from fastapi import FastAPI, Cookie, HTTPException
from fastapi.responses import JSONResponse
app = FastAPI()
@app.get("/items/")
async def read_items(*, session_token: str = Cookie(None)):
if session_token is None:
raise HTTPException(status_code=400, detail="No session_token provided")
content = {"message": "Read all items"}
response = JSONResponse(content=content)
response.set_cookie(key="session_token", value=session_token, expires=1800) # expires in 30 minutes
return response
在这个例子中,我们通过 Cookie 参数接收名为 session_token 的 Cookie。然后,我们使用 JSONResponse 返回 JSON 响应,并使用 set_cookie 方法为响应设置 Cookie。
2. 返回带有 Cookie 的 HTML 响应:
from fastapi import FastAPI, Cookie, HTTPException
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get("/items/", response_class=HTMLResponse)
async def read_items(*, session_token: str = Cookie(None)):
if session_token is None:
raise HTTPException(status_code=400, detail="No session_token provided")
content = "<html><body><h1>Read all items</h1></body></html>"
response = HTMLResponse(content=content)
response.set_cookie(key="session_token", value=session_token, expires=1800) # expires in 30 minutes
return response
在这个例子中,我们使用 Cookie 参数接收名为 session_token 的 Cookie。然后,我们使用 HTMLResponse 返回 HTML 响应,并使用 set_cookie 方法为响应设置 Cookie。
通过使用这些方法,你可以轻松地在 FastAPI 中返回带有 Cookie 的响应。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7410/FastAPI