您可以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、数据库模型等)。
如果您声明了 a response_model,它仍将用于过滤和转换您返回的对象。
FastAPI将使用该临时响应来提取 cookie(还有标题和状态代码),并将它们放在包含您返回的值的最终响应中,由 any 过滤response_model。
您还可以Response在依赖项中声明参数,并在其中设置 cookie(和标头)。
您还可以在Response直接在代码中返回 a 时创建 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 中的文档。
您可以在JSON模式中定义额外的信息。一个常见的用例是添加一个将在文档中显示的example。有几种方法可以声明额外的 JSON 模式信...
FastAPI 支持同时使用File和Form定义文件和表单字段。说明接收上传文件或表单数据,要预先安装python-multipart。例如,pip inst...
通过向规则参数添加变量部分,可以动态构建URL。此变量部分标记为variable-name。它作为关键字参数传递给与规则相关联的函数。在...
Web API 的工作通常与 HTTP 动词紧密相关,所以这使得实现这样一个基于MethodView类的 API 很有意义。也就是说,你会注意到 ...
为了在请求/响应周期之外测试基于类的视图,你必须确保它们配置正确,在实例化之后调用 setup()。例如,假设基于类的视图如...
简介dynamic-datasource-spring-boot-starter是一个基于springboot的快速集成多数据源的启动器。其支持Jdk1.7+,Spring...
动态SQL中的插入脚本语言MyBatis从3.2版本开始支持插入脚本语言,这允许你插入一种语言驱动,并基于这种语言来编写动态SQL查询语...
Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部...
JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。语法格式如下: %@ directive attribute="value" %指令可...