Frasco - Construcción de URL
los url_for()La función es muy útil para construir dinámicamente una URL para una función específica. La función acepta el nombre de una función como primer argumento y uno o más argumentos de palabra clave, cada uno correspondiente a la parte variable de la URL.
El siguiente script demuestra el uso de url_for() función.
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/admin')
def hello_admin():
return 'Hello Admin'
@app.route('/guest/<guest>')
def hello_guest(guest):
return 'Hello %s as Guest' % guest
@app.route('/user/<name>')
def hello_user(name):
if name =='admin':
return redirect(url_for('hello_admin'))
else:
return redirect(url_for('hello_guest',guest = name))
if __name__ == '__main__':
app.run(debug = True)
El script anterior tiene una función user(name) que acepta un valor a su argumento de la URL.
los User() la función comprueba si un argumento recibido coincide ‘admin’o no. Si coincide, la aplicación se redirige a lahello_admin() función usando url_for(), de lo contrario al hello_guest() función que le pasa el argumento recibido como parámetro de invitado.
Guarde el código anterior y ejecútelo desde el shell de Python.
Abra el navegador e ingrese la URL como - http://localhost:5000/user/admin
La respuesta de la aplicación en el navegador es:
Hello Admin
Ingrese la siguiente URL en el navegador: http://localhost:5000/user/mvl
La respuesta de la aplicación ahora cambia a -
Hello mvl as Guest