如何使用带有多个参数的Flask Jinja2 url_for [英] how to use Flask Jinja2 url_for with multiple parameters

查看:458
本文介绍了如何使用带有多个参数的Flask Jinja2 url_for的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!

我在使用jinja2 url_for()函数的时候遇到了一个问题。

I有一个像这样的路线:

  @ app.route('/ article /< int:article_id> /< url_title> / ',methods = ['GET'])
def article_page(article_id,url_title):$ b $ 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> 

但是当我运行这个页面时,出现错误:

$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ / code>

好像是第二个参数url_title缺失。
如何正确使用带有多个参数的url_for()?谢谢大家!

解决方案

根据 url_for 文档



确保 url_title 不是



或者为<$ c $指定默认值c> url_title 在 article_page 函数中。


everyone!

I got an problem while i was using jinja2 url_for() function.

I have a route like:

@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)

in jinja template file,i want to create a url which links to article_page,so i write like this:

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

but when i run this page,i get a error:

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

seems like that the second parameter 'url_title' missing. How can I use url_for() with multiple parameters correctly? Thanks everyone!

解决方案

According to url_for documentation:

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

Make sure that url_title is not None.

Or specify default value for url_title in the article_page function.

这篇关于如何使用带有多个参数的Flask Jinja2 url_for的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆