FastAPI 学习之路(三)
系列文章:
FastAPI 学习之路(一)fastapi--高性能web开发框架
之前的文章分享了如何去创建一个简单的路径的请求。那么我们这次分享的如何在请求路径中,增加参数。
我们还是在之前的请求中改造
@app.get("/")
def root():
return {"message": "Hello World"}
那么如何让它带参数呢,其实很简单
@app.get("/{name}")
def root(name):
return {"name": name}
那么我们去请求下,看下是否可以带参数,我们去带一个name。看下借口返回什么。

那么我们携带别的路径参数呢。

同样是可以返回对应的数据的。
如果我们不带这个路径参数,会返回什么呢

假如,我们想要约定name的数据是int类型,怎么约定呢
from fastapi import FastAPI
app = FastAPI()
@app.get("/{name}")
def root(name:int):
return {"name": name}
很简单的方式,就实现了如何定义路径参数为int类型,那么我们看下,如果我们传递的不是int类型,接口给我们返回的结果是什么

那么我们携带int类型的参数呢

参数可以正确返回我们想要的数据。不管是int类型的输入,还是非int类型的输入,都会有对应输出,FastAPI 通过上面的类型声明提供了对请求的自动解析。
当你打开对应的文档,你会发现文档上面已经把对应参数的需要的类型给增加上去了。

我们在文档中调试下。当你输入的类型不正确的时候,默认是无法点击Execute的。

只有输入正确格式的路径参数才会请求

假设你有另外一个路径参数one,如下
from fastapi import FastAPI
app = FastAPI()
@app.get("/{name}")
def root(name:int):
return {"name": name}
@app.get("/one")
def root():
return {"one": '雷子欢迎你'}
这个时候,你说请求one应该返回什么?
正常我们想着应该返回{"one": '雷子欢迎你'},结果却是

这是为什么呢,其实呢,这是因为fastapi会按照路径的顺序匹配,当你输入one,默认匹配的是第一个带参数的路径,那么我们现在调整下
from fastapi import FastAPI
app = FastAPI()
@app.get("/one")
def root():
return {"one": '雷子欢迎你'}
@app.get("/{name}")
def root(name:int):
return {"name": name}
这样我们再请求的时候,就会发生了变化

所以我们在编写代码的时候,一定要注意,相同匹配的时候,默认只会按照顺序匹配。
我们在之前的带参数路径请求的函数中,我们有这样的需求,我们要求只能输入我们规定的数据,才能返回对应的数据。
这个时候呢,推荐用枚举,我们看下如何实现的。
from fastapi import FastAPI
from enum import Enum
app = FastAPI()
class ModelName(str, Enum):
beijing = "1"
shanghai = "2"
@app.get("/{name}")
def root(name:ModelName):
if name==ModelName.beijing:
return "北京欢迎你"
if name==ModelName.shanghai:
return "您好上海"
我们看下接口如何返回

我们看下接口文档中如何展示

默认我们只能限定输入这两个。其他的在接口文档没法输入,在接口请求中会返回错误信息。fastapi默认会给你处理一些异常。返回比较好处理的数据。
文章首发在公众号:

FastAPI 学习之路(三)的更多相关文章
- FastAPI 学习之路(六)查询参数,字符串的校验
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(四)
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) 之前的文章分享了如何去在请求中增加参数,本文我们将分享 ...
- FastAPI 学习之路(五)
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) 我们之前的文章分享了 ...
- FastAPI 学习之路(十二)接口几个额外信息和额外数据类型
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(七)字符串的校验
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(八)路径参数和数值的校验
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(九)请求体有多个参数如何处理?
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(十)请求体的字段
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
- FastAPI 学习之路(十一)请求体 - 嵌套模型
系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...
随机推荐
- MySQL-存储引擎-Myisam
mysql> create table myisam_char(name char(10)) engine=myisam; Query OK, 0 rows affected (0.01 sec ...
- 紫色飞猪的研发之旅--06go自定义状态码
在实际开发中,需要前后端需要协商状态码,状态码用于后端返前端时使用.在一个团队中,定义的状态码讲道理应该是一致的,项目开始的起始阶段状态码应该是定义了个七七八八的,随着功能的叠加而不断增加.此系列将围 ...
- 为开源项目 go-gin-api 增加后台任务模块
目录 任务管理界面 (WEB) 任务调度器 任务执行器 小结 推荐阅读 任务管理界面 (WEB) 支持在 WEB 界面 中对任务进行管理,例如:新增任务.编辑任务.启用/禁用任务.手动执行任务 等. ...
- Spring AOP 事务配置(实现转账事务)
1. 事务特性 事务特性:ACID 原子性:整体 [原子性是指事务包含的所有操作要么全部成功,要么全部失败] 一致性:数据 [一个事务执行之前和执行之后都必须处于一致性状态] 隔离性:并发 [对于任意 ...
- 74cms v3.3 后台SQL注入
注入存在于后台 admin_baiduxml.php 代码 52-63行 elseif($act == 'setsave') { $_POST['xmlmax']=intval($_POST['xml ...
- Java优化if-else代码
前言 开发系统一些状态,比如订单状态:数据库存储是数字或字母,但是需要显示中文或英文,一般用到if-else代码判断,但这种判断可读性比较差,也会影响后期维护,也比较容易出现bug.比如: 假设状态对 ...
- 【Sass/SCSS 完整自学中文版教程02】SCSS 官方英文文档翻译整理
Sass 调试 目录 Sass 调试 @error @warn @debug 如果对本文有任何问题,建议,或者在前端技术体系方面有任何问题,可以添加我的微信: drylint , 我会尽可能为你解答, ...
- Powershell 命令行安装 Windows 作业系统
使用 powershell 完全安装或重灌 windows 作业系统的正确姿势 note:完全使用 powershell 指令,绝非在 powershell 终端下键入传统的 cmd 指令使用传统的 ...
- [PhpStorm]解决Cannot find declaration to go to
1.问题重现 使用单例模式访问类方法,PhpStorm提示类方法Cannot find declaration to go to 2.解决方法 加一句代码注释 注意:注释不能省略变量名 注:成员变量实 ...
- 安装 MongoDb
下面具体说下MongoDB安装之后的一些配置操作 [声明]我的安装路径是:C:\Program Files\MongoDB\Server\3.4 1. 创建数据库路径(data目录).日志路径(log ...