**動態路由**
通過把 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 字符串 |