一尘不染

flask错误:werkzeug.routing.BuildError

flask

我修改flaskr示例应用程序的登录名,第一行出现错误。但是www.html在模板目录中。

return redirect(url_for('www'))
#return redirect(url_for('show_entries'))

显示错误:

werkzeug.routing.BuildError

BuildError: ('www', {}, None) 

阅读 488

收藏
2020-04-06

共1个答案

一尘不染

return redirect(url_for('www'))如果你在其他地方有这样的功能,它将可以工作:

@app.route('/welcome')
def www():
    return render_template('www.html')

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'

return redirect('/some-url')如果更容易记住,你也可以这样做。给定第一行的情况下,你想要的也可能是just return render_template('www.html')

而且,如果你使用的是蓝图,则不是来自shuaiyuancn的以下注释,url_for应以url_for('blueprint_name.func_name') 注意的 方式调用:注意,你不是在传递对象,而是传递字符串。

2020-04-06