当前位置: 首页 > wzjs >正文

网站建设莱州哪家强?sem和seo哪个工作好

网站建设莱州哪家强?,sem和seo哪个工作好,网站隐藏的案例怎么看,深圳集团网站建设fastapi学习链接:用户指南 1. 路径参数 访问fastapi接口的默认http路径为http://127.0.0.1:8000,/items为定义的接口函数read_item的路径,/{item_id}这个用大括号括起来的参数就是路径参数,接口函数可以通过引用这个路径参数名称…

fastapi学习链接:用户指南

1. 路径参数

在这里插入图片描述

访问fastapi接口的默认http路径为http://127.0.0.1:8000,/items为定义的接口函数read_item的路径,/{item_id}这个用大括号括起来的参数就是路径参数,接口函数可以通过引用这个路径参数名称来接收路径参数作为函数入参。

如果接口函数入参指明入参的数据类型,那么接收到的路径参数会直接按照定义的入参数据类型进行数据类型转换。

在这里插入图片描述

如果接口函数需要获取一个路径作为入参,也可以通过直接声明路径参数是path来直接写入一个路径

在这里插入图片描述

若在一个接口函数中显示的声明需要一个路径参数,即使设置函数入参取默认值也是必须在调用接口时输入路径参数的。

在这里插入图片描述

可以通过Annotated显示的定义一个入参是路径参数。

在这里插入图片描述

2. 查询参数

所有声明不为路径参数的,将自动声明为查询参数。
由于默认情况下,单数值被解释为查询参数,因此您不必显式添加

我们将强制要求,即使查询参数是必需的,其长度也不得超过 50 个字符(因为查询参数是放在路径最后面直接通过调用url方式访问接口的)。

在这里插入图片描述

http://127.0.0.1:8000/items/?skip=0&limit=10,这个url后面/?skip=0&limit=10就是查询参数,查询参数使用“?”和“&”来声明在路径最后面。

因为在接口函数read_item中事先声明了查询参数的默认取值,若函数入参取默认值,可以直接调用接口的url而不需要使用“?”和“&”来声明在路径最后面的查询参数。

在这里插入图片描述

可以声明一个查询参数是可选参数,也就是说函数的入参可以是可选的

在这里插入图片描述

函数read_item的入参q数据类型可以是str或None,并且默认的参数取值是None,这就能使q作为函数的可选参数,有无入参q可以作为函数执行不同逻辑的判断条件。

可以通过显示的声明一个接口函数的入参是查询参数,使用q: Annotated[list[str] | None, Query()] = None,声明入参q是一个查询参数,同时声明q的数据类型是list,list里面的成员数据类型是str,这要求调用的路径格式为:http://localhost:8000/items/?q=foo&q=bar

在这里插入图片描述

在这里插入图片描述

若不需要强制检查list的成员数据类型,可以仅定义入参是一个具有list数据类型的查询参数:

在这里插入图片描述

引申学习:在函数入参内可以直接通过Annotated直接定义函数入参的数据类型。

3. 请求正文Request Body

fastapi支持客户端发送请求体,但是Get定义的接口可能不能够很好的支持fastapi客户端发送请求体

在这里插入图片描述

要想在正文中声明请求体,必须使用pydantic的BaseModel模型。
FastAPI 会识别出匹配路径参数的函数参数应该从路径中获取,而被声明为 Pydantic 模型的函数参数应该从请求体中获取。

在这里插入图片描述

使用BaseModel定义请求体的参数数据类型,如果使用Pydantic PyCharm 插件可以实现自动补全请求体参数数据类型所具备的所有方法,还支持对错误类型操作的错误检查。

在这里插入图片描述

在这里插入图片描述

常用方法:可以使用Annotated[int, Body()定义一个只有一个参数数据类型的Body

在这里插入图片描述

FastAPI 在仅声明了一个请求体参数的情况下,将原本的请求体嵌入到一个键中。
如果想在调用接口的请求体中包含接口入参的名称item,需要使用item: Item = Body(embed=True)

在这里插入图片描述

在这里插入图片描述

如果使用Pydantic定义请求体Body时想要声明请求体参数数据的效验条件,可以导入Field实现。

在这里插入图片描述

可以通过Filed(examples=)这种形式为请求体添加example注释信息,这些注释信息会自动添加到接口定义的文档中。

在这里插入图片描述

如果Body中只有一个单体参数,也可以通过Body(examples=)方法生成文档的example例子

在这里插入图片描述

Body模型中引入examples后,接口文档中example的样式如下:

在这里插入图片描述

4. 响应模型和响应状态代码

4.1 响应模型

响应模型定义客户端调用APP的返回输出格式。

客户端访问API时,可以使用raise HTTPException()提示客户端访问API报错信息,错误代码为404,错误信息为“Item not found".

在这里插入图片描述

4.2 响应状态代码

在这里插入图片描述

它将:

  • 在响应中返回该状态代码。
  • 在 OpenAPI 架构中(以及用户界面中)中记录它:

在这里插入图片描述

5. 安装自定义异常处理程序

5.1 添加自定义异常处理程序

假设您有一个自定义异常,您(或您使用的库)可能 .UnicornExceptionraise

并且您希望使用 FastAPI 全局处理此异常。

您可以使用以下命令添加自定义异常处理程序:@app.exception_handler()

在这里插入图片描述

5.2 覆盖默认异常处理程序&覆盖请求验证异常

  1. 覆盖默认异常处理程序
  • FastAPI 有一些默认的异常处理程序。

  • 这些处理程序负责在您请求包含无效数据时返回默认 JSON 响应。raiseHTTPException

  • 您可以使用自己的异常处理程序覆盖这些异常处理程序。

  1. 覆盖请求验证异常
  • 当请求包含无效数据时,FastAPI 会在内部引发一个 .RequestValidationError

  • 它还包括一个默认的异常处理程序。

  • 要覆盖它,请导入 the 并使用它来装饰异常处理程序。RequestValidationError@app.exception_handler(RequestValidationError)

  • 异常处理程序将接收 a 和 exception.Request

在这里插入图片描述

5.3 RequestValidationError与ValidationError

RequestValidationError是 Pydantic 的ValidationError.

FastAPI 使用它,因此,如果你在 中使用 Pydantic 模型,并且你的数据有错误,你会在日志中看到错误。response_model

但客户端/用户不会看到它。相反,客户端将收到带有 HTTP 状态代码的“内部服务器错误” 。500

应该是这样的,因为如果你的响应中或代码中的任何位置(而不是客户端的请求)中有 Pydantic,它实际上是你代码中的一个错误。ValidationError

在修复错误时,您的客户/用户不应访问有关错误的内部信息,因为这可能会暴露安全漏洞。

使用主体RequestValidationError

这包含它收到的无效数据。RequestValidationErrorbody

您可以在开发应用程序时使用它来记录正文并对其进行调试,然后将其返回给用户等。

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/wzjs/277318.html

相关文章:

  • 怀化网站建设哪家便宜2345网址导航怎么彻底删掉
  • 涿州做网站建设百度在线人工客服
  • 阅读网站策划书网络推广自学
  • 中国十大营销策划机构网络营销优化推广公司
  • 如何腾讯云二级域名做网站网站策划方案
  • 佛山公司建站电商具体是做什么的
  • 苏州建设交通招聘信息网站seo数据优化教程
  • 网站地址怎么做超链接百度快速排名
  • 找做模型方案去哪个网站seo新手教程
  • 河南怎么样做网站谷歌应用商店app下载
  • 安徽网站建设cnfg最新推广注册app拿佣金
  • 网站营销方式有哪些内容网站排名软件
  • 网站报价明细抖音优化
  • 个人网站 阿里云济南疫情最新情况
  • 内部网站建设网页链接制作生成
  • 企业网站建设一条龙如何开展网络营销
  • 网站设计与制作的基本步骤seo教学网seo
  • wordpress侧边栏文件超级优化空间
  • 张家口网站设计淘宝关键词优化技巧教程
  • 推荐5家seo搜索引擎优化软件
  • 博达网站建设教程搜索引擎推广法
  • 网站的架构与建设软文写作技巧有哪些
  • 资格证网站怎么做建网站的公司排名
  • 青县住房和城乡建设局网站免费找客户软件
  • 比较好的高端网站制作公司网络seo培训
  • 衢州做网站多少钱百度网站收录提交入口全攻略
  • 迁安市住房和城乡建设局网站百度互联网营销顾问
  • 诸城网站建设定制推广网站的文案
  • 企业网站备案在哪个部门个人网站seo入门
  • 百度站长app如何在手机上开自己的网站