FastAPI - Cookie 参数
cookie 是 HTTP 标头之一。 Web 服务器向客户端发送响应,除了请求的数据外,它还会插入一个或多个 cookie。 cookie 是存储在客户机器中的非常少量的数据。 在同一客户端的后续连接请求中,此 cookie 数据也随 HTTP 请求一起附加。
cookie 可用于记录有关客户浏览的信息。 Cookie 是通过 HTTP 协议在无状态通信中检索有状态信息的可靠方法。
在 FastAPI 中,通过 set_cookie() 方法在 response 响应对象上设置 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,但响应只是内容。
当执行read_cookie() 函数时,cookie 会被读回并作为响应出现。 此外,并不是说文档将用户名标识为 cookie 参数。