包含带过滤的纯文本文件
我们有一些文本文件,想把它们放进模板里,但这些文件里有很多我们想要过滤掉的杂乱内容。
假设过滤的标准大概是这样的:
with open(file) as f:
data = f.read()
result = re.findall('[^!]\s*(\w{4}[^pP]:[^\n]+\;)', data)
我之前见过这个例子:
在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函数里应该放些什么呢?
1 个回答
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') }}
这篇文章可以帮助你更好地理解全局变量。
希望这对你有帮助!