English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Reglas de variables de Flask

Se puede construir dinámicamente la URL añadiendo la parte variable a los parámetros de la regla. Esta parte variable se marca como <variable-name> como parámetro de clave de la función asociada a la regla.

En el siguiente ejemplo, los parámetros de la regla del decorador route() contienen el fragmento adicional añadido a la URL /la variable <name> de hello. Por lo tanto, si introduces la URL en el navegador: http://localhost:5000/hello/w3codebox, entonces 'w3codebox' se proporcionará como parámetro a la función hello().

Referencia del siguiente código -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/hello/<name>')
 def hello_name(name):
     return '¡Hola %s!' % name
 if __name__ == '__main__':
     app.run(debug = True)

Guarda el script anterior en el archivo: hello.py y ejecútalo desde el Shell de Python.

A continuación, abre el navegador e introduce la URL => http://localhost:5000/hello/w3codebox. Verás Hello w3codebox

Además de la parte de variable de cadena predeterminada, se pueden usar las siguientes reglas de construcción de convertidores -

NúmeroConvertidorDescripción
1intAcepta enteros
2floatPara valores de punto flotante
3rutaAcepta el carácter de barra diagonal (/) como separador de directorios/)

En el siguiente código, se utilizan todos estos constructores.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/blog/<int:postID>')
 def show_blog(postID):
     return 'Número de blog %d' % postID
 @app.route('/rev/<float:revNo>')
 def revision(revNo):
     return 'Número de revisión %f' % revNo
 if __name__ == '__main__':
     app.run()

Ejecutar el código anterior desde el Shell de Python. Acceder a la URL en el navegador => http:// localhost:5000/blog/11.

El valor numérico dado se utiliza como parámetro de la función: show_blog(). El navegador muestra la siguiente salida -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
Número de blog 11

Escribe este URL en el navegador - http://localhost:5000/rev/1.1

La función revision() toma un número de punto flotante como parámetro. Los siguientes resultados aparecen en la ventana del navegador -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
Número de revisión 1.100000

Las reglas de URL de Flask se basan en el módulo de rutas de Werkzeug. Esto asegura que las URL formadas sean únicas y se basen en los precedentes establecidos por Apache.

Considera las reglas definidas en el siguiente script -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/flask
 def hello_flask():
     return 'Hello Flask'
 @app.route('/python/)
 def hello_python():
     return 'Hello Python'
 if __name__ == '__main__':
     app.run()

las dos reglas parecen muy similares, pero en la segunda regla, se utiliza una barra invertida al final (/) por lo que se convierte en una URL estándar. Por lo tanto, se utiliza/python o/python/devolverá la misma salida. Sin embargo, en el caso de la primera regla, la URL:/flask/causará404 Página no encontrada。