Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >FastAPI(45)- 返回响应数据的五种常见方式

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

作者头像
小菠萝测试笔记
发布于 2021-10-09 03:25:35
发布于 2021-10-09 03:25:35
3.1K00
代码可运行
举报
运行总次数:0
代码可运行

实际代码

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!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 还提供许多返回响应数据的方式,后面的文章会一一详解
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
FastAPI(46)- JSONResponse
https://www.cnblogs.com/poloyy/p/15364635.html
小菠萝测试笔记
2021/10/09
1.4K0
FastAPI(46)- JSONResponse
FastAPI(19)- Response Model 响应模型
Optional[Union[SetIntStr, DictIntStrAny]]
小菠萝测试笔记
2021/09/27
1.3K0
FastAPI(27)- Handling Errors 处理错误
当请求包含无效数据时,FastAPI 会在内部引发 RequestValidationError,它还包括一个默认的异常处理程序
小菠萝测试笔记
2021/09/27
1.1K0
FastAPI(8)- 请求体 Request Body
选了 text 之后,因为不是 JSON 字符串,FastAPI 无法正确解析请求体为 dict,所以会报类型错误的提示
小菠萝测试笔记
2021/09/27
4.2K0
fastapi 请求文件 / 表单 / 处理错误 / 路径操作配置 / jsonable_encoder
learn from https://fastapi.tiangolo.com/zh/tutorial/request-files/
Michael阿明
2022/01/07
1.2K0
fastapi 请求文件 / 表单 / 处理错误 / 路径操作配置 / jsonable_encoder
FastAPI--响应报文(4)
请求一个接口返回来我们客户端可见的东西都是所谓的响应报文,如响应头,响应码,响应内容等。
py3study
2020/06/28
8690
FastAPI官方教程太棒了(上)
在2020年的Python开发者调查结果中,有这样一段话:“FastAPI在此次调查迭代中首次被引为选项,表现为Python第三流行的Web框架。”
dongfanger
2022/06/30
4.3K0
FastAPI官方教程太棒了(上)
FastAPI(14)- 路径操作函数参数的类型是一个嵌套 Pydantic Model 的使用场景
tags 虽然声明为 Set(),但在接口层面并没有集合这个概念,所以还是传数组 [ ] 格式哦,并不是传 { } 哦
小菠萝测试笔记
2021/09/27
7610
FastAPI后台开发基础(5):使用 Pydantic Model 定义参数类型
通常,查询参数是扁平的键值对,而不是复杂的、嵌套的 JSON 对象。这意味着直接将一个嵌套的 Pydantic 模型用作查询参数并不直接支持。
bowenerchen
2024/10/11
4050
FastAPI后台开发基础(5):使用 Pydantic Model 定义参数类型
FastAPI(15)- 声明请求示例数据
可以使用 Config cass 和 schema_extra 为 Pydantic Model 声明一个示例值
小菠萝测试笔记
2021/09/27
9090
FastAPI(22)- Pydantic Model 结合 Union、List 的使用场景
有多个模型,且请求/响应需要声明多个模型的时候,可以根据不同使用场景结合 typing 库里面的 Union、List 来达到目的
小菠萝测试笔记
2021/09/27
1.8K0
FastAPI(21)- 多个模型的代码演进
前言 在一个完整的应用程序中,通常会有很多个相关模型,比如 请求模型需要有 password 响应模型不应该有 password 数据库模型可能需要一个 hash 加密过的 password 多个模型的栗子 需求 注册功能 请求输入密码 响应不需要输出密码 数据库存储加密后的密码 实际代码 #!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blog: https://www.cnblogs.com/poloyy/ # t
小菠萝测试笔记
2021/09/27
5480
从 Flask 切到 FastAPI 后,起飞了!
本文翻译自 Moving from Flask to FastAPI, 作者:Amal Shaji
Python编程与实战
2024/03/04
1.4K0
从 Flask 切到 FastAPI 后,起飞了!
python编程 30秒高级私人定制 Response对象
/ python 编程 30 秒高级私人定制 Response 对象,十倍扩展效率 /
python编程从入门到实践
2021/03/16
9080
python编程 30秒高级私人定制 Response对象
FastAPI--错误处理(5)
再之前Bottle 中其实有一个就是HttpError异常类,在FastAPI也存在这么一个HTTPException。比如:
py3study
2020/06/28
1.3K0
API 接口开发也没那么难,Python FastAPI Web 框架教程来了!
一、FastApi 1.FastAPI 可以做什么 它由 Sebastian Ramirez 开发 开发网站 开发 web API 做一个测试平台 做一个持续集成工具 生成文档 2.为什么要学习 FastAPI FastAPI 的使用方法和设计参考了几十个 python 明星项目 博采众长 吸收各家精华 FastAPI 和 Flask 一样简约 FastAPI 非常新 并且基于 python3.6 的类型声明系统 自动生成文档 类型声明和数据检验 内置身份认证 性能强 原生支持异步 强大的依赖注入系统 Gr
用户6888863
2023/03/01
3.6K0
API 接口开发也没那么难,Python FastAPI Web 框架教程来了!
(入门篇)简析Python web框架FastAPI——一个比Flask和Tornada更高性能的API 框架
用官方的话来说,FastAPI 是一种现代,快速(高性能)的 Web 框架,基于标准Python 类型提示使用 Python 3.6+ 构建 API
用户7466307
2020/06/17
2.2K0
FastAPI入门
FastAPI是一个现代、快速的Python Web框架,用于快速构建API。它基于 Pydantic 和 Starlette,使得代码更加简洁且易于绶护。
@小森
2024/07/25
2010
FastAPI入门
fastapi 响应模型 / 响应状态码 / 表单参数
learn from https://fastapi.tiangolo.com/zh/tutorial/response-model/
Michael阿明
2022/01/07
9200
fastapi 响应模型 / 响应状态码 / 表单参数
使用FastAPI进行URL重定向
第一种方法,是直接返回一个RedirectResponse对象,默认的HTTP码是307:
SeanCheney
2023/01/10
5.7K0
使用FastAPI进行URL重定向
推荐阅读
相关推荐
FastAPI(46)- JSONResponse
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验