一尘不染

在没有Flask上下文的情况下渲染jinja2模板

flask

我有一个Flask应用程序,flask.render_template当从flask调用它时,调用时不会出现问题http request

我需要相同的方法在flask外部工作

resolved_template =  render_template(template_relative_path, **kwargs)

我可以使用jinja2 api,但是我想在两种情况下(flask and command line)都可以使用相同的方法


阅读 393

收藏
2020-04-07

共2个答案

一尘不染

你需要在应用程序上下文中呈现它。将应用程序导入后端代码,然后执行以下操作。

with app.app_context():
    data = render_template(path, **context)
2020-04-07
一尘不染

如果你想完全绕过flask并纯粹Jinja用于呈现模板,则可以这样做

import jinja2

def render_jinja_html(template_loc,file_name,**context):

    return jinja2.Environment(
        loader=jinja2.FileSystemLoader(template_loc+'/')
    ).get_template(file_name).render(context)

然后,你可以调用此函数来呈现html

2020-04-07