广告
返回顶部
首页 > 资讯 > 后端开发 > Python >FastAPI--响应报文(4)
  • 844
分享到

FastAPI--响应报文(4)

报文FastAPI 2023-01-31 08:01:24 844人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

使用response_model定义请求一个接口返回来我们客户端可见的东西都是所谓的响应报文,如响应头,响应码,响应内容等。通常不会那么傻的用户输入什么就返回什么。以下的官网示例纯粹的演示看:import uvicorn fro

使用response_model定义

请求一个接口返回来我们客户端可见的东西都是所谓的响应报文,如响应头,响应码,响应内容等。

通常不会那么傻的用户输入什么就返回什么。以下的官网示例纯粹的演示看:

import uvicorn

from fastapi import FastAPI
from pydantic import BaseModel, EmailStr

app = FastAPI()

class UserIn(BaseModel):
    username: str
    passWord: str
    email: str
    full_name: str = None

class UserOut(BaseModel):
    username: str
    email: str
    full_name: str = None

@app.post("/user/", response_model=UserOut)
async def create_user(*, user: UserIn):
    return user

if __name__ == '__main__':
    uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)


JSON参数

{
    "username":"xiao",
    "password":"1234",
    "email":"12345678@qq.com",
    "full_name":"肖"
}


1.png

 

 通常再定义我们的API返回响应的时候,一般是返回固定jsON格式的,所以可以直接使用定义response_model为一个字典:

import uvicorn

from fastapi import FastAPI
from typing import Dict

app = FastAPI()

@app.get("/keyword-weights/", response_model=Dict[str, float])
async def read_keyword_weights():
    return {"foo": 2.3, "bar": 3.4}

if __name__ == '__main__':
    uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)

 

json参数

{
    "username":"xiao",
    "password":"1234",
    "email":"12345678@qq.com",
    "full_name":"肖"
}

 

 1.png

关于响应状态码status_code

通常的一个接口请求完成,如果没有什么异常通常会返回200: 如日志打印出来一样:

INFO:     127.0.0.1:58141 - "POST /user/ Http/1.1" 400
INFO:     127.0.0.1:58315 - "POST /user/ HTTP/1.1" 200

FastAPI运行我们的指定返回的status_code,如下示例:

import uvicorn

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class UserIn(BaseModel):
    username: str
    password: str
    email: str
    full_name: str = None

class UserOut(BaseModel):
    username: str
    email: str
    full_name: str = None

@app.post("/user/", response_model=UserOut,status_code=500)
async def create_user(*, user: UserIn):
    return user

if __name__ == '__main__':
    uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)

 

1.png

 由于在路由中定死了状态码500,所以这里就是500

 

甚至还可以通过导入status来指定:

import uvicorn
from fastapi import FastAPI, status

app = FastAPI()

@app.post("/items/", status_code=status.HTTP_201_CREATED)
async def create_item(name: str):
    return {"name": name}

if __name__ == '__main__':
    uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)

 

 访问

http://127.0.0.1:8000/items?name=xiao

1.png

 

 可以看到状态码为201

 

 

本文参考链接:

http://www.zyiz.net/tech/detail-119883.html


--结束END--

本文标题: FastAPI--响应报文(4)

本文链接: https://www.lsjlt.com/news/193711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • FastAPI--响应报文(4)
    使用response_model定义请求一个接口返回来我们客户端可见的东西都是所谓的响应报文,如响应头,响应码,响应内容等。通常不会那么傻的用户输入什么就返回什么。以下的官网示例纯粹的演示看:import uvicorn fro...
    99+
    2023-01-31
    报文 FastAPI
  • HTTP请求报文和响应报文是什么
    这篇文章主要介绍了HTTP请求报文和响应报文是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HTTP请求报文和响应报文是什么文章都会有所收获,下面我们一起来看看吧。HTTP报文是面向文本的,报文中的每一个字...
    99+
    2023-06-27
  • Ajax学习:如何在Chrome网络控制台查看通信报文(请求报文/响应报文)
    第一步:F12开启控制台, 第二步骤:打开网络标签 然后刷新页面 在网络标签位置处,这时候会出现所有发送的请求  点击第一个:会出现内容  预览部分:是解析 观察解析结果处 标头=headers:主要观察请求头和请求体部分 GET请...
    99+
    2023-09-17
    网络 学习 服务器
  • 华为OD机试 - 响应报文时间(Java & JS & Python)
    题目描述 IGMP 协议中,有一个字段称作最大响应时间 (Max Response Time) ,HOST收到查询报文,解折出 MaxResponsetime 字段后,需要在 (0,MaxResponseTime] 时间 (s) 内选取随机...
    99+
    2023-09-01
    算法 华为机试 Java JavaScript Python
  • Python IDE文件为什么需要响应?响应的意义何在?
    Python IDE(Integrated Development Environment)是一种集成开发环境,它提供了许多开发工具,如代码编辑器、调试器等,使得开发者可以更加高效地编写代码。在Python IDE中,文件响应是一个非常重...
    99+
    2023-09-11
    响应 ide 文件
  • 一文带你了解vue3.0响应式
    目录使用案例reactive API相关的流程 reactivecreateReactiveObject 创建响应式对象mutableHandlers 处理函数get函数g...
    99+
    2022-11-12
  • 一文详解Vue3响应式原理
    目录回顾 vue2.x 的响应式vue3的响应式回顾 vue2.x 的响应式 实现原理: 对象类型:通过object.defineProperty()对属性的读取、修改进行拦截(数据...
    99+
    2022-11-13
  • MySQL无响应没有报错怎么解决
    MySQL无响应但没有报错的情况,可能是由于以下几个原因引起的: MySQL服务器负载过高:如果服务器负载过高,可能会导致MyS...
    99+
    2023-10-22
    MySQL
  • Python 响应文件的技巧有哪些?
    Python 是一种强大的编程语言,可用于多种用途,其中包括处理文件。在本文中,我们将探讨 Python 中响应文件的一些技巧,包括如何打开文件、读取文件内容、写入文件以及关闭文件。 打开文件 在 Python 中,使用 open()...
    99+
    2023-09-03
    响应 文件 开发技术
  • 一文详解Vue中响应式原理
    废话不多说,直接进入正题,响应式在日常开发中的应用是很常见的,这里举个简单的例子:let a=3 let b=a*10 console.log(b)//30 a=4 console.log(b)//40这时候我们想让b=4*10,这样显然是...
    99+
    2023-05-14
    前端 Vue.js 设计模式
  • 怎么理解Oracle响应时间分析报告
    本篇内容主要讲解“怎么理解Oracle响应时间分析报告”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解Oracle响应时间分析报告”吧!Oracle响应时...
    99+
    2022-10-18
  • PHP 响应文件同步问题:如何确保迅速响应客户端请求?
    当客户端发送请求到服务器时,服务器需要迅速响应客户端的请求。在 PHP 中,处理文件同步的过程可能会对响应时间产生影响。在本文中,我们将探讨如何确保 PHP 在处理文件同步时能够快速响应客户端请求。 使用异步处理 使用异步处理可以让 ...
    99+
    2023-09-02
    响应 同步 文件
  • Python文件响应框架的应用场景有哪些?
    Python文件响应框架的应用场景有哪些? Python是一个非常流行的编程语言,它的使用范围非常广泛,包括数据分析、人工智能、Web开发等方面。而在Web开发中,Python也有着非常重要的地位,其中一个重要的组成部分就是文件响应框架。文...
    99+
    2023-07-20
    响应 文件 框架
  • 如何使用 Python 开发文件响应应用程序?
    Python 是一种高级编程语言,具有简单易学、代码清晰、可读性强等特点,被广泛应用于各种领域的开发。本文将介绍如何使用 Python 开发文件响应应用程序,以及如何在 Python 中实现文件读写、复制、移动等操作。 Python 中的文...
    99+
    2023-09-03
    响应 文件 开发技术
  • Java IDE 中如何响应文件的变化?
    随着软件开发的不断发展,Java IDE(Integrated Development Environment,集成开发环境)成为了程序员们最常用的工具之一。Java IDE 为开发者提供了很多方便的功能,其中之一就是能够及时响应文件的变...
    99+
    2023-09-15
    ide 响应 文件
  • Python文件接口响应:一步步指南
    Python是一种非常流行的编程语言,它具有易于学习、易于使用的特点,因此越来越多的开发者使用Python来编写网络应用程序。在网络应用程序中,文件接口是很常见的一种应用场景,因此在本篇文章中,我们将介绍如何使用Python来实现文件接口...
    99+
    2023-08-14
    文件 接口 响应
  • web开发中有哪些响应式文字
    这篇文章主要介绍了web开发中有哪些响应式文字,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。简单来说,响应式是为了让网页在各种显示设备上都有...
    99+
    2022-10-19
  • 一文带你搞懂Spring响应式编程
    目录1. 前言1.1 常用函数式编程1.2 Stream操作2. Java响应式编程带有中间处理器的响应式流3. Reactor3.1 Flux & Mono3.2 Flux...
    99+
    2022-11-13
  • 一文详解Vue2/Vue3的响应式原理
    this.$delete(this.student, 'name');// 删除student对象属性name this.$set(this.student, 'age', '21');// ...
    99+
    2023-05-14
    Vue.js
  • 创建表报:响应不是格式正确的XML
    因为有几个流程表字段都差不多,所以我选择新建一个表后,将其导出,然后导入的时候更改名称;结果在导入的时候报了:不能违反唯一性约束的错误;看到这个错误我一开始以为是没有导入成功的,所以打算手动创建其他表(再次...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作