首页 > 其他分享 > FastAPI学习-20.response 参数-设置响应头部

FastAPI学习-20.response 参数-设置响应头部

时间:2023-09-17 11:11:24浏览次数:34  
标签:20 响应 FastAPI Response headers 头部 response

前言

你可以在你的_路径操作函数_中声明一个Response类型的参数。

设置响应头部

你可以在这个_临时_响应对象中设置头部

from fastapi import FastAPI, Response

app = FastAPI()


@app.get("/headers-and-object/")
def get_headers(response: Response):
    response.headers["X-Cat-Dog"] = "alone in the world"
    return {"message": "Hello World"}

然后你可以像平常一样返回任何你需要的对象(例如一个dict或者一个数据库模型)。如果你声明了一个response_model,它仍然会被用来过滤和转换你返回的对象。

FastAPI将使用这个临时响应来提取头部(也包括cookies和状态码),并将它们放入包含你返回的值的最终响应中,该响应由任何response_model过滤。

你也可以在依赖项中声明Response参数,并在其中设置头部(和cookies)。

直接返回头部

你也可以在直接返回Response时添加头部。

from fastapi import FastAPI
from fastapi.responses import JSONResponse

app = FastAPI()


@app.get("/headers/")
def get_headers():
    content = {"message": "Hello World"}
    headers = {"X-Cat-Dog": "alone in the world", "Content-Language": "en-US"}
    return JSONResponse(content=content, headers=headers)

你也可以使用from starlette.responses import Responsefrom starlette.responses import JSONResponse
FastAPI提供了与fastapi.responses相同的starlette.responses,只是为了方便开发者。但是,大多数可用的响应都直接来自Starlette。
由于Response经常用于设置头部和cookies,因此FastAPI还在fastapi.Response中提供了它。

标签:20,响应,FastAPI,Response,headers,头部,response
From: https://www.cnblogs.com/yoyoketang/p/17707972.html

相关文章

  • 2023 JavaScript想进 BAT 的必须要面对的面试题
    2023JavaScript面试题以及答案在本文中,您将学习面试中最常见的JavaScript面试问题和答案。在继续学习JavaScript面试问题和答案之前,我们首先学习完整的JavaScript教程。JavaScript(JS)是使用最广泛的轻量级脚本和编译编程语言,具有一流的功能,由BrendenEich于1995年开发。众所周......
  • P1082 [NOIP2012 提高组] 同余方程
    转载自这里问题转化题目问的是满足\(ax\bmodb=1\)的最小正整数\(x\)。(a,b是正整数)但是不能暴力枚举\(x\),会超时。把问题转化一下。观察\(ax\bmodb=1\),它的实质是\(ax+by=1\):这里\(y\)是我们新引入的某个整数,并且似乎是个负数才对。这样表示是为了用扩展欧几里......
  • [ABC320E] Somen Nagashi题解
    2023-09-16题目题目传送门翻译翻译难度&重要性(1~10):4题目来源AtCoder题目算法优先队列解题思路水题一道。需要两个优先队列:因为每一次是队首的人拿到面条,即队列中编号最小的拿面条,就用一个优先队列用来维护当前队列中的编号最小的人。由于每一次拿了面条后再......
  • 2023.9.17日报
    今天了解了软考的相关内容,值得一提的是,软考的上午题中有很多没有学过的内容例如计算机组成原理和操作系统,另外自己的数据结构和计算机网络也有所遗忘因此需要往回捡捡,今天了解了一些cpu的知识点,还有一些编码的内容必须要记住的是,给出一个区间,例如用32kX8bit的芯片要用多少片......
  • P6631 [ZJOI2020] 序列
    可以将问题用形象地方式来表述。给定一排点,第\(i\)个点有它需要的覆盖次数\(a_i\)。有两种线段,一种能覆盖连续的一些点,称其为连续线段;另一种能覆盖相邻间隔为\(1\)的一些点,称其为间隔线段。现在要用尽可能少的线段覆盖所有点\(i\)恰好\(a_i\)次。发现如果没有间隔线段就......
  • [ABC320F]FuelRoundT
    [ABC320F]FuelRoundTrip这道题我们首先观察数据范围,发现\(n,h\le300\),于是就可以围绕它想一个三次方的复杂度。这个数据范围,一般明摆着就是DP,所以我先往DP方向思考。首先思考如果只要一趟的情况,发现十分简单,令\(dp_{i,j}\)表示到达第\(i\)个油站,加完/不加后剩余的......
  • [ABC320F] Fuel Round Trip 题解
    题意在坐标轴上给定\(N\)个点,坐标依次为\(X_1,X_2,\cdots,X_N\),你需要从原点前往\(X_N\)并折返,其中在第\(1\)个到第\(N-1\)个点上有加油站,其中第\(i\)个加油站可以花费\(P_i\)购买\(F_i\)升汽油,汽油持有上限为\(H\)升,每行驶一单位距离需要花费一升汽油。在......
  • NOI 2023 □□记
    2023.7.2x开考了。2023.7.2x考完了。2023.7.2x退役吗..?......其实记忆早以模糊,为何还要来回忆这一切呢?...2023.6.29被隐□的博□有趣的是,我在这个博中提到了dx,我并不知道我什么样的想法下提起的dx,在分数相差近100分的情况下。其实可以追溯更早。在nf......
  • 【题解】AtCoder-ABC320
    AtCoder-ABC320ALeylandNumber依题意计算。提交记录:Submission-AtCoderAtCoder-ABC320BLongestPalindrome直接\(O(n^2)\)枚举,\(O(n)\)判断。提交记录:Submission-AtCoderAtCoder-ABC320CSlotStrategy2(Easy)不妨将字符串复制三遍,枚举\([0,3m)\)判断。提交......
  • ABC320
    T1:LeylandNumber模拟代码实现a,b=map(int,input().split())print(a**b+b**a)T2:LongestPalindrome模拟代码实现#include<bits/stdc++.h>#definerep(i,n)for(inti=0;i<(n);++i)usingnamespacestd;boolisPalindrome(strings){string......