python – 如何获取Jinja2模板中的参数列表
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 如何获取Jinja2模板中的参数列表,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1758字,纯文字阅读大概需要3分钟。
内容图文
参见英文答案 > How to get a list of current variables from Jinja 2 template? 2个
如何获取传递给Jinja2模板的所有参数的列表?
如果我有一个非常通用的模板,我想列出所有传递的参数(出于调试原因)有没有办法做到这一点?
就像是:
mytemplate.html
{% for argument in LIST_OF_ARGUMENT %}
{{ argument }}<br>
{% endfor %}
所以在视图/ foobar中
如果我以这种方式调用模板:
return render_template('mytemplate.html', form=myform, foo='bar')
我明白了
the_content_of_form <br>
bar <br>
如果我以这种方式调用模板:
return render_template('mytemplate.html', lorem=ipsum, fooooo='barrrrr')
我明白了
the_content_of_lorem <br>
barrrrr <br>
解决方法:
那么你只需要将它们作为参数传递给render_template,可能最常见的用法是将一个字典列表作为参数传递给渲染模板:
def Viewfunction():
#do something, get something from db as result and then
arguments = [dict(name=row[0],age=row[1]) for row in result.fetchall()]
return render_template('mytemplate.html', form=myform, arguments=arguments)
然后像这样访问它们:
{% for item in arguments %}
{{ item.name }}
{{ item.age }}
{% endfor %}
显然,你也可以将所有其他列表,而不仅仅是字典列表传递给模板,然后以非常类似的方式循环它们.
至于调试我发现Flask内置的调试工具非常有用,如果你得到一个例外,你只需要一个可以执行代码的页面,如果你对所有的变量感兴趣,你可以简单地输入locals() stacktrace中的帧.您只需启用调试模式即可使用它,只需记住在生产中将其关闭即可.
这是一个适合您的工作示例,当您在examples文件夹下载它时,它取自烧瓶中的flaskr示例应用程序:
@app.route('/')
def show_entries():
db = get_db()
cur = db.execute('select title, text from entries order by id desc')
entries = cur.fetchall()
return render_template('show_entries.html', entries=entries,local=locals())
当你这样做时:
{% for item in local %}
{{ item }}
{% endfor %}
你会得到db cur条目,这是你想要的吗?
内容总结
以上是互联网集市为您收集整理的python – 如何获取Jinja2模板中的参数列表全部内容,希望文章能够帮你解决python – 如何获取Jinja2模板中的参数列表所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。