La moitié de mes routes Flask nécessite une variable, disons, /<variable>/add
ou/<variable>/remove
. Comment créer des liens vers ces emplacements?
url_for()
prend un argument pour la fonction à acheminer mais je ne peux pas ajouter d'arguments?
Il prend des arguments de mot-clé pour les variables:
url_for('add', variable=foo)
def add(variable)
?url_for
passeront en tant que paramètres de fonction pour les routes de règles variables dans Flask@app.route("/<a>/<b>")
etdef function(a,b): ...
comme sa fonction, alors vous devez utiliserurl_for
et spécifier ses arguments de mot-clé comme ceci:url_for('function', a='somevalue', b='anothervalue')
url_for
in Flask est utilisé pour créer une URL afin d'éviter la surcharge liée à la modification des URL dans une application (y compris dans les modèles). Sans pour autanturl_for
, s'il y a un changement dans l'URL racine de votre application, vous devez le changer dans chaque page où le lien est présent.Syntaxe:
url_for('name of the function of the route','parameters (if required)')
Il peut être utilisé comme:
Maintenant, si vous avez un lien vers la page d'index: vous pouvez utiliser ceci:
Vous pouvez faire beaucoup de choses avec, par exemple:
Pour ce qui précède, nous pouvons utiliser:
Comme ça, vous pouvez simplement passer les paramètres!
la source
{{ url_for('find_question' ,question_id=question.id) }}
et non{{ url_for('find_question' ,question_id={{question.id}}) }}
Reportez-vous au document Flask API pour
flask.url_for()
Vous trouverez ci-dessous d'autres exemples d'utilisation de la liaison js ou css à votre modèle.
la source
Modèles:
Transmettez le nom et l'argument de la fonction.
Vue, fonction
la source