渲染不含Flask内容物的jinja2模板

2024-04-30 05:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Flask应用程序,当从Flask http request调用它时,它调用flask.render_template没有问题。

我需要同样的方法在flask之外工作(从python后端程序)

resolved_template =  render_template(template_relative_path, **kwargs)

我可以使用jinja2 api,但我希望在两种上下文(flask和命令行)中使用相同的方法


Tags: path方法程序api应用程序httpjinja2flask
3条回答

如果您想完全绕过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

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

with app.app_context():
    data = render_template(path, **context)

我用的是这个代码:

import jinja2
template_values = {
  'value_name_in_html': value_name_in_python,   
}

template = JINJA_ENVIRONMENT.get_template("file_patch")
self.response.write(template.render(template_values))

相关问题 更多 >