from flask import Flask, url_for
app = Flask(__name__)
@app.route('/')
def index():
return 'index'
@app.route('/login')
def login():
return 'login'
@app.route('/user/<username>')
def profile(username):
return '{}\'s profile'.format(username)
with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('login', next='/'))
print(url_for('profile', username='John Doe'))
这个url_for()方法有点不太清楚?
他有一个作用是通过视图函数名称获取route装饰器中的我们定义的URL,这个很好理解。
这是以上代码的结果
/
/login
# 这里给定了一个参数next = “/”这个参数是不是被当成了未知变量从而作为查询参数
/login?next=/
# 这里John和Doe中间有个空格,但被url_for()方法给转换成了%20
/user/John%20Doe