如何查看 flask 最终输出的jinja模板

lfzyx
  • 251

我在模板中写了个 for 循环,类似 {% for n in Data %} 这样的,然后我想看 flask 把这个 for 循环展开后最终生成的模板文件,应该怎么去查看? 我不要通过浏览器查看源代码的方式。

回复
阅读 3k
2 个回答
✓ 已被采纳

flask 使用jinja模块,直接调用就可以了, 如下

In [5]: from jinja2 import Template

In [6]: template = Template('{% for n in Data %} {{ n}} {% endfor %}')

In [7]: Data = range(10)
   ...: 

In [8]: template.render(Data=Data)
   ...: 
Out[8]: u' 0  1  2  3  4  5  6  7  8  9 '

参考:http://docs.jinkan.org/docs/j...

使用 render_template_string 即可, 传参方式和 render_template 类似,只是第一个参数为读取的模板内容, 而不是模板文件路径
示例代码如下(简短演示,就不写路由, 直接用 app_context 模拟访问):

from flask import (
    Flask,
    render_template_string
)

app = Flask(__name__)
tpl_args = {
    'Data': [1, 2, 3, 4, 5]
}
with app.app_context():
    result = render_template_string('{% for n in Data %} {{ n }} {% endfor %}', **tpl_args)
    print(result)

输出如下:
输出截图

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏