return redirect(url_for('www'))
fonctionnerait si vous avez une fonction un autre endroit comme celui-ci:
@app.route('/welcome')
def www():
return render_template('www.html')
url_for
recherche une fonction, vous passez le nom de la fonction que vous êtes désireux d'appeler. Pensez-y comme ceci:
@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 return redirect('/some-url')
, si cela est plus facile à retenir. Il est également possible que ce que vous voulez, étant donné votre première ligne, est juste return render_template('www.html')
.
Et aussi, pas du commentaire de shuaiyuancn ci-dessous, si vous utilisez des blueprints, url_for
doit être appelé url_for(blueprint_name.func_name)
. See documentation here.
Je vois, vraiment merci beaucoup bvmou veru. – chenge
+1 pour un exemple très clair ... et pour "rien de plus fort que le gin avant le petit-déjeuner" –
Enlightening! Je pensais que l'argument est l'url .. – swdev