Réponses:
Il prend des arguments de mot-clé pour les variables:
url_for('add', variable=foo)
url_for
passeront en tant que paramètres de fonction pour les routes de règles variables dans Flask
@app.route("/<a>/<b>")
et def function(a,b): ...
comme sa fonction, alors vous devez utiliser url_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:
@app.route('/index')
@app.route('/')
def index():
return 'you are in the index page'
Maintenant, si vous avez un lien vers la page d'index: vous pouvez utiliser ceci:
<a href={{ url_for('index') }}>Index</a>
Vous pouvez faire beaucoup de choses avec, par exemple:
@app.route('/questions/<int:question_id>'): #int has been used as a filter that only integer will be passed in the url otherwise it will give a 404 error
def find_question(question_id):
return ('you asked for question{0}'.format(question_id))
Pour ce qui précède, nous pouvons utiliser:
<a href = {{ url_for('find_question' ,question_id=1) }}>Question 1</a>
Comme ça, vous pouvez simplement passer les paramètres!
{{ url_for('find_question' ,question_id=question.id) }}
et non{{ url_for('find_question' ,question_id={{question.id}}) }}
Reportez-vous au document Flask API pourflask.url_for()
Vous trouverez ci-dessous d'autres exemples d'utilisation de la liaison js ou css à votre modèle.
<script src="{{ url_for('static', filename='jquery.min.js') }}"></script>
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
Modèles:
Transmettez le nom et l'argument de la fonction.
<a href="{{ url_for('get_blog_post',id = blog.id)}}">{{blog.title}}</a>
Vue, fonction
@app.route('/blog/post/<string:id>',methods=['GET'])
def get_blog_post(id):
return id
def add(variable)
?