我正在尝试使用 Jinja 2.6 使用 include
标记将文件插入到页面中。这工作得很好,直到我开始在文件中使用让人联想到 Jinja 语法的字符,此时它意识到它无法解析它们并被轰炸。
没有浏览文件并转义所有字符,我能做些什么来告诉 Jinja 只包含文件原样?
最佳答案
您可以定义一个函数来加载文本文件并在模板中呈现它:
import jinja2
def include_file(name):
return jinja2.Markup(loader.get_source(env, name)[0])
loader = jinja2.PackageLoader(__name__, 'templates')
env = jinja2.Environment(loader=loader)
env.globals['include_file'] = include_file
def render():
return env.get_template('page.html').render()
if __name__ == '__main__':
print render()
在模板中,这样调用它:
{{ include_file('file.txt') }}
关于python - 将静态文件按字面意思插入 Jinja 模板而不解析它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767585/