FastApi-02-路径参数_python


何为路径参数

顾名思义,路径参数就是 ​​url​​​ 中带的请求参数,比如根据 ​​id​​ 查询信息。

例:自动大写首字母

main.py

...
@app.get('/format/{name}')
async def fmt(name):
new_name = name.title()
return {'result':new_name}
...

启动服务后测试

访问:​​http://127.0.0.1:8765/format/phyger​

FastApi-02-路径参数_请求参数_02

可以看到,功能已经实现!

存在的问题

访问:​​http://127.0.0.1:8765/format/123​

FastApi-02-路径参数_python_03

虽然有结果返回,但是我们期望后台能够对请求参数的格式进行校验。请继续往下看。

默认的路径参数类型都是 ​​str​​​,所以 ​​123​​​ 已经被转换成了 ​​str​​ 类型。

带格式的路径参数

当我们在处理数字的时候,我们不希望后台对非法类型的数据进行处理。

老代码

...
@app.get('/format1/{num}')
async def fmt1(num):
print(type(num))
new_num = num+1
return {'result':new_num}
...

路径参数为 123 的结果

FastApi-02-路径参数_python_04

​​​Internal Server Error​​​,因为后台将 ​​123​​​ 当做 ​​str​​ 处理了,所以在进行计算的时候出错了。

新代码

@app.get('/format1/{num}')
async def fmt1(num:int):
print(type(num))
new_num = num+1
return {'result':new_num}

路径参数为 123 的结果

FastApi-02-路径参数_数据_05

成功!