English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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úmero | Convertidor | Descripción |
1 | int | Acepta enteros |
2 | float | Para valores de punto flotante |
3 | ruta | Acepta 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。