FastAPI - Cookie 参数


cookie是 HTTP 标头之一Web 服务器向客户端发送响应,除了请求的数据外,还插入一个或多个 cookie。cookie是存储在客户端计算机中非常少量的数据。在来自同一客户端的后续连接请求中,此 cookie 数据也会与 HTTP 请求一起附加。

cookie 对于记录有关客户端浏览的信息很有用。Cookie 是通过 HTTP 协议在无状态通信中检索状态信息的可靠方法。

在 FastAPI 中,cookie 参数是在set_cookie()方法的帮助下在响应对象上设置的

response.set_cookie(key, value)

例子

这是set_cookie()方法的示例。我们有一个名为 content 的 JSON 响应对象。调用set_cookie()方法将 cookie 设置为key="usrname"value="admin" -

from fastapi import FastAPI
from fastapi.responses import JSONResponse
app = FastAPI()
@app.post("/cookie/")
def create_cookie():
   content = {"message": "cookie set"}
   response = JSONResponse(content=content)
   response.set_cookie(key="username", value="admin")
   return response

要在后续访问时读回 cookie,请使用 FastAPI 库中的 Cookie 对象。

from fastapi import FastAPI, Cookie
app = FastAPI()
@app.get("/readcookie/")
async def read_cookie(username: str = Cookie(None)):
   return {"username": username}

检查 Swagger API 中的这两个端点。有这两个路由“/cookies”“/readcookie”。执行绑定到“/cookies”的create_cookie()函数。尽管设置了 cookie,但响应只是内容。

FastAPI Cookie 参数

当执行read_cookie()函数时,cookie 被读回并显示为响应。另外,文档也没有将用户名标识为 cookie 参数。

FastAPI Cookie 参数