首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    FastAPI(16)- 额外的数据类型

    常见的数据类型 int float str bool 但 FastAPI 支持使用更复杂的数据类型 仍然能得到 FastAPI 的支持 IDE 智能提示 请求数据的数据类型转换 响应数据的数据类型转换...数据验证 自动注释和文档 复杂的数据类型 UUID 常见的唯一标识符 str 类型 datetime.datetime Python 的 datetime.datetime str 类型 栗子:2008...set 类型 在请求中,将读取一个列表,消除重复项并将其转换为一个集合 在响应中,集合将被转换为列表 会在 Schema 中加一个标识 uniqueItems,表示 set 里面的值是唯一的 bytes...,更多的数据类型可以看 Pydantic Types 只要 Pydantic 有的,FastAPI 都支持 复杂数据类型的栗子 #!...校验错误的请求结果 查看 Swagger API 文档

    49520

    FastAPI 构建 API 服务,究竟有多快?

    FastAPI 干啥的? FastAPI 是用来构建 API 服务的一个高性能框架。...基于 Starlette 和 Pydantic,是 FastAPI 如此高性能的重要原因。 还具备代码复用性高,容易上手,健壮性强的优点。...个人还觉得,FastAPI 还有一个非常强的优势:方便的 API 调试,生成 API 文档,直接能够做到调试自己构建的 API,这在实际应用中,价值凸显。...输入请求:localhost:8000/docs,回车:,看到 API 文档界面 点开第二个 get 请求,然后点击 Try it out 后,便可以进行接口调试。非常方便!...输入user_id, name 后,点击 Execute, 能看到结果,包括请求的 URL 也能看到,服务器响应前端,返回的结果: FastAPI 基于以上这些强大的优点,相信在实际开发 API 服务时

    2.6K20

    FastAPI官方教程太棒了(上)

    Python第三流行的Web框架 在2020年的Python开发者调查结果中,有这样一段话:“FastAPI在此次调查迭代中首次被引为选项,表现为Python第三流行的Web框架。”...参数是必填的:limit: int 请求体 FastAPI的请求体借助于pydantic来实现: from typing import Optional from fastapi import FastAPI...总结一下,在函数参数中,url path中定义的叫做路径参数,没有定义的叫做查询参数,类型是pydantic model的叫做请求体,FastAPI会根据这套规则来自动识别: from typing...-字段 Pydantic提供了Field来给body中的字段添加额外校验: from typing import Union from fastapi import Body, FastAPI from...除了支持常见的数据类型: int float str bool 还支持额外的数据类型: UUID datetime.datetime datetime.date datetime.time datetime.timedelta

    4.3K10

    (进阶篇)Python web框架FastAPI——一个比Flask和Tornada更高性能的API 框架

    所以本篇内容将注重于 FastAPI 的项目生产环境,诸如 数据库,路由蓝图,数据验证等问题在 FastAPI 中的具体操作和一些自己碰到的坑,分享给正在进攻 FastAPI 的各位小伙伴。 ?...同时支持多种请求方式 在上面的 login 例子可以发现,我在上下文 request 中通过判断路由的请求方式来进行响应的逻辑处理,比如如果不是 Post请求 就把它重定向到 login 页面等等...那么就需要同时支持多种请求方式了,巧合的是,我在 FastAPI 文档中找不到相应的说明,刚开始的时候我也迷糊了一阵。所以,只能干源码了。...异常处理 在各种 http资源 不存在或者访问异常的时候都需要有 http状态码 和 异常说明,例如, 404 Not Found 错误,Post请求出现的 422,服务端的 500 错误,所以如何在程序中合理的引发异常...在茫茫的 FastAPI 文档中我尽可能摸索出一些易用,实用,好用的功能来和大家分享,并尝试投入到实际的生产环境中,在这个过程中去学习更多的东西,体验更好的服务性能。

    2.7K21

    FastAPI框架诞生的缘由(上)

    但是有时候,没有更好的办法,除了创建具有所有这些功能的东西,从以前的工具中汲取最佳创意,并以最佳方式将它们组合起来,使用以前甚至没有的语言功能(Python 3.6+类型提示)。...启发 FastAPI 地方: 拥有简单直观的API。 直接,直观地使用HTTP方法名称(操作)。 具有合理的默认值,功能强大的自定义。...将 Python 中的datetime 对象转为字符串,等等。 另外一个功能就是数据的验证,确保传入的参数是有效的,例如,有些字段是一个 int,类型而不是字符串,这在检测输入数据是非常有用的。...启发 FastAPI 地方: 使用代码来定义提供的数据类型和验证的 schema,验证都是自动化的。 Webargs API 框架需要的另一大功能点是解析从前端发送的请求数据。...这是一个伟大的工具,在 FastAPI 诞生之前,我一直在用它。 启发 FastAPI 地方: 对输入的请求数据的自动验证。 (未完待续)

    2.6K10

    FastAPI(28)- JSON Compatible Encoder 利器之 jsonable_encoder

    jsonable_encoder 在实际应用场景中,可能需要将数据类型(如:Pydantic 模型)转换为与 JSON 兼容的类型(如:字典、列表) 比如:需要将数据存储在数据库中 为此,FastAPI...提供了一个 jsonable_encoder() 函数 jsonable_encoder 实际上是 FastAPI 内部用来转换数据的,但它在许多其他场景中很有用 实际栗子 需求 假设有一个仅接收兼容...模型(具有属性的对象),只会接收 dict 使用 jsonable_encoder 将数据转换成 dict 实际代码 #!...import datetime from typing import Optional import uvicorn from fastapi import FastAPI from fastapi.encoders...JSON 兼容 访问 /items/123 接口,查看控制台输出 item is title='string' timestamp=datetime.datetime(2021, 9, 23, 5,

    1.2K20

    FastAPI从入门到实战(14)——JSON编码兼容与更新请求

    针对数据格式和类型问题,fastapi内置了一个很好的转换器,本文就相关内容主要记录编码和请求更新相关内容; json兼容编码器 class Animal(BaseModel): name...Pydantic模型类的,在实际的应用中并不会兼容,例如存储到数据库中,利用fastapi内置的jsonable_encoder()函数就能很好的解决相关的问题;会进行类型的转换,例如pydantic转...dict,datetime转str… PUT请求更新数据 class City(BaseModel): province: Optional[str] = Field("重庆")...,将接收的请求体进行解码,就是进行对应的类型转换(基于上面的JSON编码器),然后进行数据存储: PATCH请求更新数据 @app08.patch("/stu08/citypatch/{cityid...cityitem print(cityitem) return city_item_update_result 这个就是部分更新,了解方法即可,实际应用中,还是PUT方法用的多,具体过程参看上面代码的注释

    73010

    FastAPI后台开发基础(13): 异常处理 Exception

    本文将通过一个实际的例子,展示如何在FastAPI中实现自定义异常处理。定义自定义异常首先,我们定义了一个名为MyException的自定义异常类,它继承自Python的基类Exception。...在初始化方法__init__中,我们记录了异常发生的时间(使用ISO格式),并为每个异常实例生成了一个唯一的UUID。这两个属性将用于后续的错误响应中,以提供详细的错误信息。...这个处理器专门用来处理MyException类型的异常。当MyException被抛出时,FastAPI将调用这个处理器,并传入请求对象和异常对象。...处理器返回一个JSONResponse对象,其中包含了异常发生的时间、UUID、请求方法、URL以及请求头等信息。...使用RequestValidationError来处理请求验证失败的情况,这是Pydantic在请求数据不符合预期模式时自动抛出的异常。

    29243

    FastAPI 学习之路(二十一)请求体 - 更新数据

    FastAPI 系列文章: FastAPI 学习之路(一) FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四)使用pydantic模型做请求体...(十九)处理错误 FastAPI 学习之路(二十)接口文档配置相关 前言 我们之前分享一些配置,这次分享一下请求体去更新数据。...正文 我们都知道,去创建请求体,更新数据我们用PUT请求,我们去试着更新下数据。 我们有一组数据,我们要更新描述。...参数); 只更新用户设置过的值,不用模型中的默认值覆盖已存储过的值。...这种方式与 Pydantic 模型的 .dict() 方法类似,但能确保把值转换为适配 JSON 的数据类型,例如, 把 datetime 转换为 str 。

    97150
    领券