FastApi教程|响应Cookie

发表时间:2020-03-09

使用 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"}

然后,您可以像往常一样返回所需的任何对象(a dict ,数据库模型等)。

而且,如果您声明了 response_model ,它仍将用于过滤和转换您返回的对象。

FastAPI 将使用该 时间 响应来提取Cookie(还包括标头和状态代码),并将其放入包含您返回的值(由any过滤)的最终响应中 response_model

您还可以 Response 在依赖项中 声明 参数,并在依赖项中设置cookie(和标题)。

Response 直接 返回

Response 直接在代码中 返回时,您还可以创建cookie 。

为此,您可以按照 直接返回 响应中所述创建 响应

然后在其中设置Cookies,然后将其返回:

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

小费

请记住,如果直接返回响应而不是使用 Response 参数,则FastAPI将 直接返回响应 。

因此,您将必须确保数据类型正确。 例如,如果您返回,则它与JSON兼容 JSONResponse

另外,您没有发送任何应该由过滤的数据 response_model

更多信息

技术细节

您也可以使用 from starlette.responses import Response from starlette.responses import JSONResponse

FastAPI 提供相同 starlette.responses fastapi.responses ,就像为你的方便,开发人员。 但是大多数可用的响应直接来自Starlette。

由于 Response 可以经常使用来设置标头和cookie,因此 FastAPI 还在提供 fastapi.Response

要查看所有可用的参数和选项,请查看 Starlette中 文档

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号-4
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free