fastAPI(6)--Response自定义状态码

status_code参数接收带有HTTP状态代码的数字

可以从 fastapi.status 导入状态码常量,便于使用和记忆

#!/usr/bin/env python
# encoding: utf-8

from fastapi import FastAPI, status
import uvicorn

app = FastAPI()

#status_code参数接收带有HTTP状态代码的数字
@app.post('/items/', status_code=201)
async def create_item(name: str):
    return {"name": name}

@app.get('/items2/', status_code=201)
async def create_item2(name: str):
    return {"name": name}

@app.post('/items3/', status_code=status.HTTP_404_NOT_FOUND)
async def create_item3(name: str):
    print('HTTP 404', status.HTTP_404_NOT_FOUND)
    return {"name": name}

if __name__ == '__main__':
    uvicorn.run(app=app, host='127.0.0.1', port=8000)

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你想要自定义 FastAPI 的 response_model 参数来返回一个 JSON 数组,你可以使用 List[Response[Dict[str, Any]]] 来实现。这里的 Dict[str, Any] 表示返回的 JSON 对象可以包含任意的键值对,具体的键和值可以根据你的需要进行定义,示例代码如下: ```python from typing import Generic, List, TypeVar, Dict, Any from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() T = TypeVar('T') class Response(Generic[T]): data: T code: int = 0 msg: str = "success" class User(BaseModel): name: str age: int @app.get("/users/", response_model=List[Response[Dict[str, Any]]]) async def read_users(): users = [{"name": "Alice", "age": 20}, {"name": "Bob", "age": 25}] response = [Response[Dict[str, Any]](data=user_dict) for user_dict in users] return response ``` 在这个示例代码中,我们使用了一个类似于之前的 Response 泛型类,但是 data 属性的类型是 Dict[str, Any],这样就可以包含任意的键值对。在 read_users 函数中,我们使用了 List[Response[Dict[str, Any]]] 作为 response_model 参数,表示返回一个 Response 泛型类的列表,每个 Response 对象的 data 属性都是一个包含任意键值对的字典。我们根据实际数据构造了一个 Response 泛型类的列表,并将其作为返回值。 使用这种方式可以方便地自定义返回的 JSON 数组,可以根据实际需要定义不同的 Response 类型,以及每个 Response 对象的 data 属性的键值对。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值