【问题标题】:how to use Flask Jinja2 url_for with multiple parameters如何使用带有多个参数的 Flask Jinja2 url_for
【发布时间】:2014-01-15 15:10:21
【问题描述】:

我在使用jinja2url_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()

【问题讨论】:

  • 如果article.url_titleNone,就会发生这种情况。确保不是None

标签: python flask jinja2 url-for


【解决方案1】:

根据url_for documentation

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

确保url_title 不是None

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多