return redirect(url_for('www'))
funcionaría si tiene una función en otro lugar como este:
@app.route('/welcome')
def www():
return render_template('www.html')
url_for
busca una función, se le pasa el nombre de la función que está deseando llamar. Piense en ello como esto:
@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'
También podría hacer return redirect('/some-url')
, si eso es más fácil de recordar. También es posible que lo que desee, dada su primera línea, sea solo return render_template('www.html')
.
Y también, no del comentario de shuaiyuancn a continuación, si está utilizando planos, url_for
debe invocarse como url_for(blueprint_name.func_name)
. See documentation here.
veo, realmente te bvmou buenísimo gracias mucho. – chenge
+1 para un ejemplo muy claro ... y para "nada más fuerte que la ginebra antes del desayuno" –
¡Iluminador! Se pensó que el argumento es la URL ... – swdev