我修改了flaskr sample app的登录,第一行获取错误.但www.html是在模板目录中.
return redirect(url_for('www'))
#return redirect(url_for('show_entries'))
Run Code Online (Sandbox Code Playgroud)
显示错误:
werkzeug.routing.BuildError
BuildError: ('www', {}, None)
Run Code Online (Sandbox Code Playgroud)
unm*_*ted 144
return redirect(url_for('www'))
如果你在其他地方有这样的功能会工作:
@app.route('/welcome')
def www():
return render_template('www.html')
Run Code Online (Sandbox Code Playgroud)
url_for
查找函数,您将要传递的函数的名称传递给它.可以这样想:
@app.route('/login')
def sign_in():
for thing in login_routine:
do_stuff(thing)
return render_template('sign_in.html')
@app.route('/new-member')
def welcome_page():
flash('welcome to our new members')
flash('no cussing, no biting, nothing stronger than gin before breakfast')
return redirect(url_for('sign_in')) # not 'login', not 'sign_in.html'
Run Code Online (Sandbox Code Playgroud)
return redirect('/some-url')
如果这更容易记住,你也可以这样做.考虑到你的第一线,你想要的也是可能的return render_template('www.html')
.
而且,不是从shuaiyuancn的评论下面,如果你正在使用蓝图,url_for
应该被调用为url_for('blueprint_name.func_name')
.见这里的文档.