【FastAPI】P3 请求与响应

这篇具有很好参考价值的文章主要介绍了【FastAPI】P3 请求与响应。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在网络通讯中,请求(Request)响应(Response) 扮演着至关重要的角色,它们构成了客户端与服务器间互动的根本理念。

  • 请求,指的是客户端向服务器请求数据;
  • 响应,指的是服务器发送给客户端的 HTTP 响应;

总的来说,当客户端向服务器发送一个 HTTP 请求时,服务器会处理这个请求,并返回一个 HTTP 响应。


请求

FastAPI,支持多种类型的请求数据,如路径参数、查询参数等。

路径参数

把参数设置在路径上,识别资源的具体实例。

# 参数 user_id 放在路径上,识别资源的具体实例。
@app.get("/users/{user_id}")

实现步骤:

1. 运行完整代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/users/{user_id}")
def get_user(user_id: int):
    return {"user_id": user_id}

2. 部署 uvicorn 服务器:

uvicorn main:app --reload

【FastAPI】P3 请求与响应,# FastAPI,fastapi

3. 通过网址访问:

http://127.0.0.1:8000/users/10010


查询参数

通过在路径后面添加问号(?)来附加查询参数,以提供额外的信息或者过滤条件。

@app.get("/users")
# 网址如下:
http://127.0.0.1:8000/users?user_id=10010&user_name=xuhongduo

实现步骤:

1. 运行完整代码:

from fastapi import FastAPI

app = FastAPI()

@app.get("/users/")
def get_user(user_id: int, user_name: str):
    return {"user_id": user_id, "user_name": user_name}

2. 部署 uvicorn 服务器:

# 如果已部署,那么无需重启,reload在代码修改时自动重启服务器
uvicorn main:app --reload

3. 通过网址访问:

http://127.0.0.1:8000/users/?user_id=10010&user_name=xuhongduo


响应

响应一般包含:

  • 状态码:200表示成功,404表示未找到,500表示服务器错误等;
  • 响应体:文本、JSON、二进制文本等;

FastAPI 支持多种类型的响应,包括 JSON 响应、文本响应、文件响应、重定向响应和错误响应。

JSON 响应

JSON 响应是最常用的响应类型,用于传输结构化数据。

return {"user_id": user_id, "user_name": user_name}

文本响应

文本响应发送纯文本数据。

return "Hello, World!"

返回 Pydantic 模型

路由处理函数返回一个 Pydantic 模型实例,FastAPI 将自动将其转换为 JSON 格式,并作为响应发送给客户端:

1. 运行完整代码:

from pydantic import BaseModel
from typing import Optional

class User(BaseModel):
    id: int
    name: str
    email: Optional[str] = None

from fastapi import FastAPI, HTTPException

app = FastAPI()

users = {
    1: {"name": "Alice", "email": "alice@example.com"},
    2: {"name": "Bob"},
}

@app.get("/users/{user_id}")
def read_user(user_id: int):
    user = users.get(user_id)
    if user:
        return user
    else:
        raise HTTPException(status_code=404, detail="User not found")

2. 通过网址访问:

http://127.0.0.1:8000/users/1

3. FastAPI 自动将 Pydantic 模型实例转换为 JSON 格式:

【FastAPI】P3 请求与响应,# FastAPI,fastapi

有关 FastAPI Pydantic 模型,请看 【FastAPI】P4 FastAPI Pydantic


以上
如有任何问题,请联系或留言,谢谢

2024.2.19文章来源地址https://www.toymoban.com/news/detail-832099.html

到了这里,关于【FastAPI】P3 请求与响应的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】如何在FastAPI中使用UUID标记日志,以跟踪一个请求的完整生命周期

    在分布式系统中,一个请求可能会经过多个服务,每个服务都会生成自己的日志。如果我们只使用普通的日志记录,那么很难将这些日志串联在一起,以至难以跟踪一个请求的完整生命周期。 如果能够使用uuid标记日志,为每个请求生成一个唯一的uuid,且这个日志可以在不同

    2024年02月07日
    浏览(43)
  • 【Fastapi框架】Fastapi的使用和进阶

    原文作者 :我辈李想 版权声明 :文章原创,转载时请务必加上原文超链接、作者信息和本声明。 新建main.py文件, 方式一:命令启动 方式二:在mian.py中加启动代码 http://127.0.0.1:8000/ http://127.0.0.1:8000/items/1 http://127.0.0.1:8000/items/1?q=2 http://127.0.0.1:5678/docs#/ http://127.0.0.1:5678/redoc

    2024年02月04日
    浏览(43)
  • 【FastAPI】P1 安装与第一个 FastAPI 应用

    FastAPI 是用于快速构建 API 的 web 框架,依赖 Python 3.8 及更高版本。使用 pip 命令安装 fastapi : 安装异步处理 ASGI 的服务器 Uvicorn : 补充知识: Uvicorn 是 ASGI 的一个实现,它基于 Starlette 和 Uvicorn 的异步服务器,能够为 Django、FastAPI 等应用提供高性能的服务。 ASGI 异步处理服务

    2024年02月20日
    浏览(41)
  • FastAPI(七)应用配置

    目录 一、在apps下新建文件夹config 二、新建配置文件app_conf.py   一、在apps下新建文件夹config 二、新建配置文件app_conf.py  

    2024年02月14日
    浏览(65)
  • fastapi 入门系列

    大纲 1.1 什么是FastAPI 1.1 什么是FastAPI FastAPI是一个现代、快速(高性能)的Web框架,用于构建API。它基于Python 3.7+的类型提示(type hints)和异步编程(asyncio)能力,使得代码易于编写、阅读和维护。FastAPI具有自动交互式文档(基于OpenAPI规范和JSON Schema)、数据验证、依赖注入

    2024年02月07日
    浏览(37)
  • FastAPI入门

    目录 FastAPI FastAPI 是什么 为什么要用 FastAPI FastAPI 入门 安装 用 FastAPI 写个接口 调试接口 创建快捷请求 保存为快捷请求 发送请求 总结 FastAPI 是什么 什么是 FastAPI 呢? FastAPI 是 Python 的一个框架,如果要类比的话,那就是: Nodejs 和 Nestjs Java 和 Spring Php 和 ThinkPhp   为什么要用

    2024年02月12日
    浏览(36)
  • 【FastAPI】路径参数(二)

    如果你有一个接收路径参数的路径操作,但你希望预先设定可能的有效参数值,则可以使用标准的 Python Enum 类型。 导入 Enum 并创建一个继承自 str 和 Enum 的子类。通过从 str 继承,API 文档将能够知道这些值必须为 string 类型并且能够正确地展示出来。 然后创建具有固定值的类

    2024年01月17日
    浏览(37)
  • FastAPI 基本使用(一)

      目录 ​编辑 1、基本介绍  2、运行方式 3、创建接口步骤 4、自动生成API文档 4.1 交互式API文档 4.2 备用API文档 5、FastApi 执行顺序 6、Python-Pydantic库 6.1 BaseModel模型 6.2 请求体 + 路径参数 + 查询参数 7、Query/Path/Body/Field 参数(额外的校验) 与 字符串验证 8、typing类型注解 8.1 常

    2024年02月08日
    浏览(36)
  • FastAPI 使用记录

    core/worker.py fast_api.py requsts test

    2024年02月07日
    浏览(44)
  • fastapi篇(一)

    fastapi是一个高性能的web开发框架 性能极高,可与 NodeJS, Go 媲美。(得益于Starlette和Pydantic)。 Starlette 是一个轻量级 ASGI 框架/工具包。它非常适合用来构建高性能的 asyncio 服务,并支持 HTTP 和 WebSockets。 官方网址:https://www.starlette.io/   Pydantic 是一个使用Python类型提示来进行数

    2024年02月03日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包