用url_for构造URL,他接受函数名作为第一个参数,
也接受对应URL规则的变量部分的命名参数,
未知的变量部分会添加到URL末尾作为查询参数。
构建URL而不选择直接在代码中拼URL的原因有两点:
1)在未来有更改的时候只需要一次性修改URL,而不用到处替换;
2)URL构建会转义特殊字符和Unicode数据,
这些工作不需要我们自己处理。
下面是个例子:
from flask import Flask,url_for
app = Flask(__name__)
@app.route('/example/1/')
def example(id):
pass
with app.test_request_context():
print url_for('example',id=1)
print url_for('example',id=2,next='/')
#text_request_context帮助我们在交互模式下产生请求上下文。
执行结果:
/example/1/?id=1
/example/1/?id=2&next=%2F
欢迎进(Q)群,帮你解决问题: