4、fastApi-响应

作者: 许忠慧 | 来源:发表于2023-07-29 14:51 被阅读0次

一、基础语法

from fastapi import FastAPI

app = FastAPI()


# 传递 header 参数
@app.get("/", response_model=int)
def root():
    return 123

效果预览:

符合定义的返回值类型.png 不符合定义的返回值类型.png

二、自定义返回模型

基础语法:

from fastapi import FastAPI
from pydantic import BaseModel, EmailStr

app = FastAPI()


# 自定义的返回模型
class ReturnClass(BaseModel):
    name: str
    email: EmailStr


@app.get("/", response_model=ReturnClass)
def root():
    return ReturnClass

三、自定义响应状态码

在以下任意的路径操作中使用 status_code 参数来声明用于响应的 HTTP 状态码:

from fastapi import FastAPI

app = FastAPI()


@app.get("/", status_code=203)
def root():
    return "code"

效果:

不指定则使用 http默认响应码
http所有响应码查询:点击前往

可以使用fastApi提供的方法来便捷得记住响应码,这样可以通过自动补全来快速知道哪个状态码对应哪个状态

四、抛出异常

通过异常抛出, 可以自定义抛出异常

语法:

from fastapi import FastAPI, HTTPException

app = FastAPI()

items = {"foo": "The Foo Wrestlers"}


@app.get("/{item_id}")
async def read_item(item_id: str):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item": items[item_id]}

效果:

五、自定义异常处理

使用 @app.exception_handler修饰符可以自定义异常处理方法

语法:

from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse


class UnicornException(Exception):
    def __init__(self, name: str):
        self.name = name


app = FastAPI()


@app.exception_handler(UnicornException)
async def unicorn_exception_handler(request: Request, exc: UnicornException):
    return JSONResponse(
        status_code=418,
        content={"message": f"Oops! {exc.name} did something. There goes a rainbow..."},
    )


@app.get("/unicorns/{name}")
async def read_unicorn(name: str):
    if name == "yolo":
        raise UnicornException(name=name)
    return {"unicorn_name": name}

相关文章

  • 『言善信』Fiddler工具 — 3.补充:HTTP协议介绍(二

    4、НТТР响应报文 (1)НТТP响应报文说明 HTTP响应报文主要由状态行、消息报头、空一行、响应正文4部分组...

  • HTTP响应消息

    响应消息分为四部分1.响应行2.响应头3.响应空行4.响应体 一、响应行 二、响应头 三、响应空行 四、响应体

  • 个别请求头介绍及常用响应头介绍

    Referer请求头 响应协议 响应内容 相应协议格式如下:1、响应首行2、响应头信息3、空行4、响应体(相应内容...

  • HTTP

    HTTP请求报文:1.请求行2.请求头3.请求空行4.请求体 HTTP响应报文:1.状态码2.响应头3.响应空行4...

  • SpringMVC之 响应结果和数据视图

    1.响应之返回值是String 2.响应之返回值是void 3.响应之返回值是ModeAndView 4.响应之返...

  • HTTP 响应代码

    参考HTTP 响应代码 响应分为五类: 信息响应 1xx 成功响应 2xx 重定向 3xx 客户端错误 4xx 服...

  • Python Tkinter-Event

    1.点击 2.移动 3.释放 4.进入 5.离开 6.响应特殊键 7.响应所有按键 8.响应指定按键 响应a 空格...

  • Angular表单验证

    angular4里一个响应式编程的小例子 Angular2 响应式表单验证 Angular开发(十一)-关于响应式...

  • iOS-完整的触摸事件传递过程

    知 识 点 / 超 人 触摸事件分为四个阶段进行传递:1.硬件响应阶段2.系统响应阶段3.桌面响应阶段4.应用响应...

  • 精讲响应式WebClient第4篇-文件上传与下载

    本文是精讲响应式WebClient第4篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式...

网友评论

    本文标题:4、fastApi-响应

    本文链接:https://www.haomeiwen.com/subject/weudpdtx.html