当前位置:   article > 正文

FastAPI Web框架教程 第4章 响应头和响应体_fastapi post 返回响应头

fastapi post 返回响应头

4-1 设置响应状态码

需求场景

收到客户端的请求后,服务端要响应,响应主要包含三个关键部分:响应状态码,响应头,响应体。

我们先看响应状态码,服务端如何设置响应状态码呢?

补充:对状态不清楚的复习【1.8 补充HTTP协议】,或者参考视频教程:https://www.51zxw.net/Show.aspx?cid=1003&id=117478

FastAPI的解决方式

FastAPI提供了一种简单便捷的方式设置,简单来说就是在路径装饰器中使用:status_code字段

示例1:直接给status_code字段一个状态码

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class User(BaseModel):
    username: str
    password: str


@app.post("/login", status_code=200)	# 直接指定一个响应码
def login(user: User):
    return {
   
        "username": user.username,
        "password": user.password
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

示例2:status_code使用枚举值

补充:官方库http中的HTTPStatus是一个枚举类,枚举了所有的状态码

from http import HTTPStatus

from fastapi import FastAPI


app = FastAPI()


@app.post("/login", status_code=HTTPStatus.OK)	# 枚举值OK 其实就是数字200
def login():
    pass
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

示例3:status_code使用常量

从FastAPI导出的status,本质是直接使用starlette的status模块

from fastapi import FastAPI, status


app = FastAPI()


@app.post("/login", status_code=status.HTTP_200_OK)
def login():
    pass
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4-2 设置响应头

需求场景

有的时候,在响应客户端请求的时候,需要在响应头中给客户端返回一些数据,此时该如何设置响应头呢?

FastAPI的解决方式

示例1:在路径函数中使用 Response

from fastapi import FastAPI, Response

app = FastAPI()


@app.post("/login")
def login(response: Response):
    response.headers["x-jwt-token"] = "this_is_jwt_token"
    return {
   "message": "Hello World"}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

示例2:直接使用返回一个Response,比如使用FastAPI的默认响应方式JSONResponse

from fastapi import FastAPI
from fastapi.responses import JSONResponse

app = FastAPI()


@app.post("/login")
def login():
    response = JSONResponse(
        content={
   "message": "Hello World"},
        headers={
   "x-jwt-token": "this_is_jwt_token"},
    )
    return response
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

扩展:使用返回Response的方式,也可以设置响应状态码,手动设置响应体,操作cookie等等

4-3 响应体数据

FastAPI响应数据时,默认响应是json的格式,具体使用的响应类是 JSONResponse

示例1:响应 普通结构数据

from fa
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
    推荐阅读
    相关标签
      

    闽ICP备14008679号