如果你仔细观察日常所用服务的某些 URL 格式,会发现很多地址中都包含可变部分。例 如, 你 的 Facebook 资 料页面的地址是http://www.facebook.com/<your-name>,用户名 (your-name)是地址的一部分。Flask 支持这种形式的 URL,只需在 route 修饰器中使用特 殊的句法即可。下例定义的路由中就有一部分是动态名字:
@app.route('/user/<name>') def user(name): return '<h1>Hello, %s!</h1>' % name
尖括号中的内容就是动态部分,任何能匹配静态部分的 URL 都会映射到这个路由上。调 用视图函数时,Flask 会将动态部分作为参数传入函数。在这个视图函数中,参数用于生 成针对个人的欢迎消息。
程序的基本结构 | 9
路由中的动态部分默认使用字符串,不过也可使用类型定义。例如,路由 /user/<int:id> 只会匹配动态片段 id 为整数的URL。Flask 支持在路由中使用 int、float 和 path 类型。 path 类型也是字符串,但不把斜线视作分隔符,而将其当作动态片段的一部分
网友评论