**动态路由**
通过把 URL 的一部分标记为`<variable_name>`就可以在 URL 中添加变量。标记的 部分会作为关键字参数传递给函数。通过使用`<converter:variable_name>`,可以 选择性的加上一个转换器,为变量指定规则。
1. 为 `app/api_1_0/controller` 下的 `index.py` 控制器绑定路由
```
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
from app.api_1_0 import bp
@bp.route('/name/<obj_name>')
def hello(obj_name):
return 'hello '+ obj_name + '\n'
```
测试
```
root@airvip:~/python_app/flask-demo# curl 127.0.0.1:5000/api/v1.0/name/flask
hello flask
```
2. 添加限定只匹配正整数的转换器
```
#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
from app.api_1_0 import bp
@bp.route('/nameid/<int:id>')
def hello1(id):
return 'hello %d \n' %id
```
测试
```
root@airvip:~/python_app/flask-demo# curl 127.0.0.1:5000/api/v1.0/nameid/666
hello 666
```
如果传了非数字类型的数据,比如:字符串,将会得到 404 Not Found
**其他转换器**
| 类型 | 含义 |
| --- | --- |
| string | (缺省值) 接受任何不包含斜杠的文本 |
| int | 接受正整数 |
| float | 接受正浮点数 |
| path | 类似`string`,但可以包含斜杠 |
| uuid | 接受 UUID 字符串 |