生成网址
为一个特定的函数构建网址, 使用 url_for()函数,接受函数名作为第一个参数,...还有一些关键字参数,每个参数对应网址规则中的一个变量部分
位置变量附加到网址后作为查询参数,例:
from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index():
pass
@app.route('login')
def login():
pass
@app.route('/user/<username>')
def profile(usernme):
pass
with app.test_request_context():
print(url_for ('index'))
print(url_for('login'))
print(url_for('login', next='/'))
print(url_for('profile', username='Clay'))
#这里用到test_request_context()函数,主要是告知Flask,此刻正在处理一个request
#构建网址(而未在模版中编码)的好处:
# 反向解析比硬编码网址更具描述性,尤其是:只需在一个地方更改网址,而不用到处做更改
# 网址构建过程为自动处理特殊字符和unicode数据转义,这些都是透明可见的
#如果应用程序位于根路径以外的地方(如 在/myapplication,而不是/),url_for()可以妥善处理这些问题