因此,我们已经有了要包含在模板中的文本文件,这些文件包含了我们想要同时过滤掉的大量垃圾。
我们说过滤应该或多或少基于此:
with open(file) as f:
data = f.read()
result = re.findall('[^!]\s*(\w{4}[^pP]:[^\n]+\;)', data)
我已经看过这个例子了: Insert static files literally into Jinja templates without parsing them
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函数应该包含什么内容?
答案 0 :(得分:0)
你应该有这样的东西......
def include_file(self, name):
with open(file) as f:
data = f.read()
result = re.findall('[^!]\s*(\w{4}[^pP]:[^\n]+\;)', data)
return jinja2.Markup(result)
env.globals['include_file'] = include_file
然后你的模板看起来像这样......
{{ include_file('file.txt') }}
这篇文章有助于解释全局变量。
希望这有帮助!