18

我在使用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 模板文件中,我想创建一个链接到 article_page 的 url,所以我这样写:

<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()正确使用多个参数?

4

2 回答 2

8

根据url_for文件

如果查询参数的值为 None,则跳过整个对。

确保url_title不是None.

url_title或者在article_page函数中指定默认值。

于 2013-12-28T03:35:55.387 回答
5

你错过了一个点,试试这个:

url_for('.article_page', article_id=article.id, url_title=article.url_title)
于 2017-06-28T14:31:00.667 回答