flask框架之动态构建URL
通过向规则参数添加变量部分,可以用来动态构建URL。
1. 在构建路由的时候,route()装饰器的规则参数包含附加到URL‘/ ’的<name>,即:
@app.route('/<name>')
在定义调用函数的时候,将那么作为参数传入
def hello_world(name):
return 'Hello %s!' % name
运行app.py之后,打开浏览器输入http://127.0.0.1:5000/明朝乘扁舟,则浏览器中将显示:
Hello 明朝乘扁舟!
2. route默认为字符串变量,还可以使用转换器构建规则。
a). int 接受整数
b). float 接受浮点数
c). 接受用作目录分隔符的斜杠
比如:
@app.route('/w/<int:num>')
def show(num):
return 'w is %d' % num
启动程序后,打开浏览器输入http://127.0.0.1:5000/w/520,则浏览器显示:
w is 520
3. 同一个URL访问路径,可以根据传入参数的不同,进行不同的操作。
比如:
@app.route('/w/<name>')
def show(name):
if name == 'admin':
return redirect(url_for('fun1'))
else:
return redirect(url_for('fun2', guest = name))
重点是url_for()函数的应用,url_for函数的第一个参数为需要重定向调用的函数的名称,后续为重定向调用函数对应的参数。
比如上述需要被调用的重定向函数fun1和fun2 的定义:
@app.route('/admin')
def fun1():
return 'Hello Admin'
@app.route('/guest/<guest>')
def fun2(guest):
return 'Hello %s as Guest' % guest
运行程序后,
在浏览器输入http://127.0.0.1:5000/w/admin,则浏览器显示
Hello Admin
在浏览器输入http://127.0.0.1:5000/w/wm,则浏览器显示
Hello wm as Guest

浙公网安备 33010602011771号