【FastAPI-04】请求与响应1
所谓的“请求与响应”是就是考虑 http 协议的请求与响应过程。HTTP报文本身是由多行数据构成的字文本,构成十分复杂,但是逻辑十分简单。
我们使用框架的原因就是简化封包的过程,而将精力放在如何处理数据的逻辑上。在框架下的“请求”就是如何通过框架获取请求的参数;在框架下的“响应”就是如何将要返回的数据交给框架处理。
01 路径参数
路径参数一般用于 get 请求。
1 | http://example.com/xxy/p/110119120 |
1.1 示例
1 | # 通过`{}`来标注变量 |
1.2 注意顺序
对比下列两个代码,代码的结果:
1 |
|
1 |
|
所以,注意,路由匹配是有顺序的!~
1.3 类型限制
1 | # 参数默认类型是str,可以通过指定数据类型实现类型转换 |
02 请求参数
请求参数也一般用于 get 请求。
1 | http://example.com/jobs/python?type=ai |
2.1 示例
1 | from typing import Union |
在指定数据类型时,需要多类型的情况下可以使用,Union 来实现。
特殊情况:仅仅需要和 None类型联合时,可以简写:Optional[str] = Union[str, None]
03 请求体数据
请求体,一般用于 POST 请求
FastAPI 基于 Pydantic ,用来做类型的强制校验,不符合类型要求就会抛出异常。
1 | # 安装Pydantic |
请求体内数据格式一般为json: Content-Type: application/json
3.1 示例
1 |
|
3.2 数据校验
04 form表单数据
form表单数据,一般用于POST请求。
与json方式的请求体不同,使用form表单数据时 Content-Type: application/x-www-form-urlencoded。比如在OAuth2 规范的一种使用方式中,需要将用户名、密码作为表单字段发送,而不是JSON
FastAPI可以使用Form组件来接受表单数据,需要先使用pip install python-multipart 命令进行安装。
1 | pip install python-multipart |
4.1 示例
1 | from fastapi import FastAPI, Form |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咕咕评客!
评论



