FastAPI(45)- 返回响应数据的五种常见方式

实际代码

默认情况下,路径操作函数可以返回 Python 数据类型、Pydantic Model,FastAPI 会自动将它们转换为和 JSON 兼容的数据

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""
# author: 小菠萝测试笔记
# blog:  https://www.cnblogs.com/poloyy/
# time: 2021/10/3 5:03 下午
# file: 40_responses.py
"""
import uvicorn
from fastapi import FastAPI, Response
from fastapi.responses import JSONResponse
from pydantic import BaseModel

app = FastAPI()


# 1.返回字符串
@app.get("/ret_str")
def ret_str():
    return "hello fastapi"


# 2.返回字典
@app.get("/ret_dict")
def ret_dict():
    return {"id": 1, "name": "小菠萝"}


# 3.返回list
@app.get("/ret_list")
def ret_list():
    return [1, 2, 3]


class Item(BaseModel):
    id: str
    name: str


# 4.返回 Pydantic Model
@app.post("/ret_pydantic")
def ret_pydantic(item: Item):
    return item


# 5.返回 json 字符串
@app.get("/ret_json")
def ret_json():
    return "{'id': 1, 'name': '小菠萝'}"


if __name__ == '__main__':
    uvicorn.run(app="40_responses:app", reload=True, host="127.0.0.1", port=8080)

这里列出五种返回数据的方式

  • 字符串
  • 字典
  • 列表
  • Pydantic Model
  • JSON 字符串

 

返回字符串的请求结果

 

返回字典的请求结果

 

返回列表的请求结果

 

返回 Pydantic Model 的请求结果

 

返回 JSON 字符串的请求结果

 

重点

  • 这只是最基础简单的五种方式
  • 其实 FastAPI 还提供许多返回响应数据的方式,后面的文章会一一详解

 

posted @ 2021-10-03 17:55  小菠萝测试笔记  阅读(1508)  评论(0编辑  收藏  举报