flask 动态路由
时间: 2023-08-15 12:09:17 浏览: 45
Flask中的动态路由是一种通过URL路径参数来传递参数的方式。与Django不同,Flask使用转换器语法来定义动态路由的参数类型。默认情况下,参数类型是字符串(string),但也可以指定其他类型,如整数(int)、浮点数(float)和路径(path)等。[1][2]
例如,可以使用`<int:user_id>`来定义一个接受整数类型参数的动态路由。在路由函数中,可以通过参数名来获取传递的参数值,并进行相应的处理。例如:
```python
@app.route('/users/<int:user_id>')
def user_info(user_id):
print(type(user_id))
return 'hello user {}'.format(user_id)
```
在这个例子中,当访问`/users/123`时,`user_id`参数将被解析为整数类型,并在函数中进行处理。[1]
除了单个参数,Flask还支持在动态路由中包含多个参数。可以通过在路由路径中使用斜杠来分隔不同的参数,并在路由函数中按照顺序接收这些参数。例如:
```python
@app.route('/all/<path:path>/name/<string:name>/age/<int:age>/price/<float:price>')
def show_all(name, path, age, price):
return f"path is {path}\nname is {name}\nage is {age}\nprice is {price}"
```
在这个例子中,路由路径`/all/somepath/name/someuser/age/25/price/9.99`将被解析为`path`、`name`、`age`和`price`四个参数,并在函数中进行处理。[3]
通过使用动态路由,可以根据不同的URL路径参数来实现不同的功能,使得Flask应用程序更加灵活和可扩展。