大家好!
我在使用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的网址,所以我这样写:
<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()?谢谢大家!
答案 0 :(得分:7)
如果查询参数的值为None,则跳过整个对。
确保url_title
不是None
。
或者在url_title
函数中指定article_page
的默认值。
答案 1 :(得分:1)
你错过了一个点,试试看:
url_for('.article_page', article_id=article.id, url_title=article.url_title)