Variable de plantilla de referencia dentro de la expresión Jinja
Resuelto
asked hace 9 años
•
1 respuestas
Tengo una ruta definida así:
@app.route('/magic/<filename>')
def moremagic(filename):
pass
Y ahora en una plantilla quiero llamar a esa ruta url_for()
así:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
Yo he tratado:
<a href="{{ url_for('/magic', filename={{ name }}) }}">Click to see magic happen</a>
Eso arroja unjinja2.TemplateSyntaxError: expected token ':' got }
¿Alguien puede sugerir cómo incluir lo {{ name }}
que aparece en la plantilla url_for()
para que cuando haga clic llame al correcto app.route
?
Aceptado
Todo lo que hay dentro {{ ... }}
es una expresión similar a Python. No es necesario utilizar otro {{ ... }}
dentro para hacer referencia a variables.
Suelte los corchetes adicionales:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
(Tenga en cuenta que la url_for()
función toma el nombre del punto final , no una ruta URL; el nombre predeterminado es el nombre de la función, moremagic
en su ejemplo).