当前位置: 首页 > 面试题库 >

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

慕容烨
2023-03-14
问题内容

使用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文件:

如果查询参数的值为“无”,则将跳过整个对。

确保url_title不是None

url_titlearticle_page函数中指定默认值。



 类似资料:
  • 我遇到了这样一种情况,我的映射方法有3个参数,所有这三个参数都用于派生目标类型的一个属性。 我在接口中创建了一个默认映射方法,保留了用于派生属性的逻辑,现在为了调用这个方法,我可以在注释中使用。 有没有什么方法可以在mapstruct注释中做到这一点,比如,我试着用expression属性和qualifiedByName来注释注释,但它不起作用:

  • 问题内容: 我想使用angularjs HTTP post service发送多个参数。 这是客户端代码: 这是服务器端代码: 但是当我发表文章时,我得到了错误。知道我在做什么错吗? 问题答案: 考虑带有参数 user* 和 email 的帖子URL * params对象将是

  • 问题内容: 在Go模板中,有时将正确的数据传递到正确的模板的方式令我感到尴尬。用流水线参数调用模板看起来就像只用一个参数调用函数。 假设我有一个Gophers网站,有关Gophers。它具有一个主页主模板和一个用于打印Gophers列表的实用程序模板。 http://play.golang.org/p/Jivy_WPh16 输出: 现在,我想在子模板中添加一些上下文:在列表内以不同的方式设置名称“

  • 根据文档,可以为标志,但我找不到具体方法。我尝试了以下方法: = 我也试过: = 知道如何定义多个参数吗?

  • 我是Node.js和Express的新手,我一直在做一个RESTful API项目,我试图在URL中发送一个带有多个参数的GET请求: 这是我的路线: 我是这样称呼它的: 而且我也尝试过 它最终会走这条路线: 那么,我写endpoint的方式是否错误?还是我要求的方式?

  • 问题内容: 我正在尝试制作一个带有按钮的PyGtk Gui。当用户按下此按钮时,提示用户输入密码。 然后,它将为JQuery代码段克隆此Git存储库。 然后,将文件复制到 最后,它会强制删除Git存储库。 命令: 它在我的终端机上工作正常。 但是, 它仅通过GUI打开,我添加了密码,按Enter,然后再次关闭。 我只想在第一个执行命令 这是我的Python函数(带有命令): 问题答案: 要直接回答