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

简介: 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 字符串

 

返回字符串的请求结果


image.png


返回字典的请求结果


image.png


返回列表的请求结果


image.png

返回 Pydantic Model 的请求结果


image.png


返回 JSON 字符串的请求结果


image.png


重点


  • 这只是最基础简单的五种方式
  • 其实 FastAPI 还提供许多返回响应数据的方式,后面的文章会一一详解
相关文章
|
数据库
FastAPI(53)- Response Headers 响应设置 Headers
FastAPI(53)- Response Headers 响应设置 Headers
579 0
FastAPI(53)- Response Headers 响应设置 Headers
|
6月前
|
安全 关系型数据库 数据库
FastAPI数据库操作秘籍:如何通过高效且安全的数据库访问策略,使你的Web应用飞速运转并保持数据完整性?
【8月更文挑战第31天】在构建现代Web应用时,数据库操作至关重要。FastAPI不仅简化了API创建,还提供了高效数据库交互的方法。本文探讨如何在FastAPI中实现快速、安全的数据处理。FastAPI支持多种数据库,如SQLite、PostgreSQL和MySQL;选择合适的数据库可显著提升性能。通过安装相应驱动并配置连接参数,结合ORM库(如Tortoise-ORM或SQLAlchemy),可以简化数据库操作。使用索引、批量操作及异步处理等最佳实践可进一步提高效率。同时,确保使用参数化查询防止SQL注入,并从环境变量中读取敏感信息以增强安全性。
312 1
|
6月前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
387 1
|
6月前
|
存储 缓存 NoSQL
【性能飙升的秘密】FastAPI应用如何借助缓存技术实现极速响应?揭秘高效Web开发的制胜法宝!
【8月更文挑战第31天】FastAPI是一个高性能Web框架,利用Starlette和Pydantic实现高效API构建。本文介绍如何通过缓存提升FastAPI应用性能,包括使用`starlette-cache[redis]`实现Redis缓存,以及缓存一致性和缓存策略的注意事项。通过具体示例展示了缓存的配置与应用,帮助开发者构建更高效的Web应用。
384 0
|
6月前
|
API Python
Python FastAPI 获取 Neo4j 数据
Python FastAPI 获取 Neo4j 数据
57 0
|
9月前
|
JSON API 数据安全/隐私保护
如何使用Fastapi上传文件?先从请求体数据讲起
如何使用Fastapi上传文件?先从请求体数据讲起
268 2
|
XML 数据格式
FastAPI(47)- 通过 Response 自定义响应的类型
FastAPI(47)- 通过 Response 自定义响应的类型
328 0
FastAPI(47)- 通过 Response 自定义响应的类型
|
JSON NoSQL API
全面拥抱 FastApi — 响应模型
全面拥抱 FastApi — 响应模型
|
存储
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
1065 1
FastAPI(51)- 自定义响应之 StreamingResponse、FileResponse
|
JavaScript API 网络安全
FastAPI(52)- Response Cookies 响应设置 Cookies
FastAPI(52)- Response Cookies 响应设置 Cookies
419 0
FastAPI(52)- Response Cookies 响应设置 Cookies