как использовать Flask Jinja2 url для с несколькими параметрами

все!

у меня возникла проблема, когда я использовал функцию jinja2 url_for ().

у меня есть маршрут типа:

@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 я хочу создать url, который ссылается на article_page, поэтому я пишу так:

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

но когда я запускаю эту страницу,Я получаю ошибку:

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

кажется, что второй параметр "url_title" отсутствует. Как правильно использовать url_for() с несколькими параметрами? Спасибо все!

2 ответов


по данным url_for документация:

если значение аргумента запроса равно None, вся пара пропускается.

убедитесь в том, что url_title не None.

или укажите значение по умолчанию для url_title на


вы пропустили точку, попробуй это:

url_for('.article_page', article_id=article.id, url_title=article.url_title)