如访问 /user/bob
或者 /user/lily
都会映射到同一视图函数上
@app.route('/user/<name>')
动态域名中动态的部分可以作为视图函数的参数,也支持多个动态参数,如访问 /user/bob/23
@app.route('/user/<name>/<age>')
还可以指定动态部分的数据类型,如
@app.route('/post/<int:post_id>')
支持的数据类型
类型 | 说明 |
---|---|
string | (默认值) 任何不包含斜杠的文本 |
int | 正整数 |
float | 正浮点数 |
path | 类似 string ,但可以包含斜杠 |
uuid | 接受 UUID 字符串 |
指定HTTP 方法
HTTP协议,支持多种HTTP 方法,例如HEAD
、OPTIONS
,以及常用的GET
、POST
等,Flask自动处理了HEAD
和OPTIONS
,路由默认接受的方法是GET,如果要匹配其他请求方法,可以在路由方法的methods
参数来指定
@app.route('/login', methods=['GET', 'POST'])
复合路由
也可以将多个路由规则,用于一个视图函数, 如访问/job/
和访问 /work/
效果是一样的
@app.route('/job/')
再复杂一点的例子
@app.route('/users/', defaults={'page': 1})
上面的代码表示,当访问/user/
或者 /user/page/<pageindex>
时,都会有show_users
视图函数来处理, 而且还为