python - 如何使用带有多个参数的 Flask Jinja2 url_for

标签 python flask jinja2 url-for

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

最佳答案

根据 url_for documentation :

If the value of a query argument is None, the whole pair is skipped.

确保 url_title 不是 None

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

关于python - 如何使用带有多个参数的 Flask Jinja2 url_for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20810630/

相关文章:

python - 需要有关 python 元组的帮助

python - 具有基于列名称的图例的 T-SNE 散点图

python - 在 Flask 部署中 Web 服务器有什么用?

javascript - Bootstrap表导出数据问题

python - 在多个内核上运行 python 程序

python - 检查我的模块是否已导入

python - 如何使新页面在同一选项卡中打开。表单POST方法。 flask

python - Flask 自定义错误页面 500 不工作

flask - 使用现有的行信息预填充 flask 管理员创建表单

python - Pyramid 项目的 .jinja 模板中的 Vue.js