comment utiliser Flask Jinja2 url pour avec plusieurs paramètres

tout le monde!

j'ai eu un problème en utilisant la fonction Jinja2 url_for ().

j'ai une route comme:

@app.route('/article/<int:article_id>/<url_title>/', methods=['GET'])
def article_page(article_id, url_title):
    article = Article.query.get(article_id)
    if article == None:
        abort(404)
    return render_template('article.html', article=article)

à jinja fichier de modèle,je veux créer une url des liens vers article_page,donc j'écris comme ceci:

<h5><a href="{{ url_for('article_page',article_id=article.id,url_title=article.url_title) }}">{{ article.title }}</a></h5>

mais quand je lance cette page,j'obtiens une erreur:

raise BuildError(endpoint, values, method)
BuildError: ('article_page', {'article_id': 1}, None)

semble manquer le second paramètre 'url_title'. Comment puis-je utiliser url_for() avec plusieurs paramètres correctement? Merci à tous!

8
demandé sur Tiny Lin 2013-12-28 07:14:53

2 réponses

Selon url_for documentation:

si la valeur D'un argument de requête est None, la paire entière est sautée.

assurez-vous que url_title n'est pas None.

ou spécifiez la valeur par défaut pour url_title dans le article_page fonction.

6
répondu falsetru 2017-02-15 15:38:45

Vous avez manqué un point, essayez ça:

url_for('.article_page', article_id=article.id, url_title=article.url_title)
1
répondu Trưởng Đinh Quang 2017-06-28 16:24:08