2024-04-19 21:58:57 发布
网友
我正在尝试使用Jinja 2.6使用include标记将文件插入到页面中。直到我开始在文件中使用让人想起Jinja语法的字符,它才意识到自己无法解析它们,于是就崩溃了。
include
除了检查文件和转义所有字符之外,我能做什么来告诉Jinja只包括文件的原样?
尝试将语法放在{% raw %} {% endraw %}中的其他文件中
{% raw %} {% endraw %}
如果不想编辑外部文件,可以使用jQuery: 潜水以包含内容<div id="contentoffile"></div>
<div id="contentoffile"></div>
并使用jquery加载文件:$("#contentoffile").load("url to file")<;<;url可以是相对的
$("#contentoffile").load("url to file")
如果你用的是烧瓶,可以这样写:
from jinja2 import Markup ... app.jinja_env.globals['include_raw'] = lambda filename : Markup(app.jinja_loader.get_source(app.jinja_env, filename)[0])
像这样使用:
{{ include_raw('js-inline/modernizr.min.js') }}
所包含文件的路径与模板文件夹的路径相同(对于普通包含)。
您可以定义一个函数来加载文本文件并在模板中呈现它:
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') }}
尝试将语法放在
{% raw %} {% endraw %}
中的其他文件中如果不想编辑外部文件,可以使用jQuery: 潜水以包含内容
<div id="contentoffile"></div>
并使用jquery加载文件:
$("#contentoffile").load("url to file")
<;<;url可以是相对的如果你用的是烧瓶,可以这样写:
像这样使用:
所包含文件的路径与模板文件夹的路径相同(对于普通包含)。
您可以定义一个函数来加载文本文件并在模板中呈现它:
在模板中,按如下方式调用:
相关问题 更多 >
编程相关推荐