Maison >développement back-end >Tutoriel Python >Comment référencer correctement les variables de modèle dans la fonction « url_for() » de Jinja2 ?

Comment référencer correctement les variables de modèle dans la fonction « url_for() » de Jinja2 ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-19 16:10:12383parcourir

How to Correctly Reference Template Variables within Jinja2's `url_for()` Function?

Référencement des variables de modèle dans les expressions Jinja

Le problème

Considérez l'extrait de modèle Jinja2 suivant :

<a href="{{ url_for('/magic/{{ filename }}') }}">Click to see magic happen</a>

Ce code tente de générer une URL vers un itinéraire défini as :

@app.route('/magic/<filename>')
def moremagic(filename):
    pass

Cependant, l'URL générée par l'extrait de modèle est incorrecte car la variable {{ filename }} n'est pas correctement référencée dans la fonction url_for().

La solution

Pour résoudre ce problème, le jeu supplémentaire d'accolades dans la fonction url_for() doit être supprimé. En effet, tout ce qui se trouve dans {{ ... }} dans Jinja2 est une expression de type Python et, par conséquent, il n'est pas nécessaire d'utiliser un autre {{ ... }} pour référencer des variables.

Le le code corrigé est le suivant :

<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>

Ici, la variable name est passée en argument à la fonction url_for(), et le nom du point de terminaison moremagic est utilisé à la place de l'URL chemin.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn