Insert static files literally into Jinja templates without parsing them

前端 未结 5 1745
逝去的感伤
逝去的感伤 2020-12-15 07:09

I\'m trying to insert file into a page using Jinja 2.6 using the include tag. This worked fine until I started using characters in the file that are reminiscent

5条回答
  •  余生分开走
    2020-12-15 07:32

    You can define a function to load the text file and render it in the template:

    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()
    

    In the template, call it like this:

    {{ include_file('file.txt') }}
    

提交回复
热议问题