65 votes

Flacon d'erreur: werkzeug.le routage.BuildError

J'ai modifier le nom de connexion de flaskr exemple d'application, la première ligne d'erreur. Mais www.html est dans le modèle dir.

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

erreur d'affichage de la:

werkzeug.routing.BuildError

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

Merci pour l'aide!

153voto

unmounted Points 10968

return redirect(url_for('www')) si vous avez une fonction quelque part d'autre, comme ceci:

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

url_for cherche une fonction, vous passer le nom de la fonction que vous souhaitez appeler. Pensez-y comme ça:

@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'

Vous pouvez également faire de return redirect('/some-url'), si c'est plus facile à retenir. Il est également possible que ce que vous voulez, compte tenu de votre première ligne, est juste return render_template('www.html').

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X