字符串中的jinja2加载模板:TypeError:未为此环境指定加载程序 [英] jinja2 load template from string: TypeError: no loader for this environment specified

查看:80
本文介绍了字符串中的jinja2加载模板:TypeError:未为此环境指定加载程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Flask中使用Jinja2.我想从字符串渲染模板.我尝试了以下2种方法:

I'm using Jinja2 in Flask. I want to render a template from a string. I tried the following 2 methods:

 rtemplate = jinja2.Environment().from_string(myString)
 data = rtemplate.render(**data)

 rtemplate = jinja2.Template(myString)
 data = rtemplate.render(**data)

但是两种方法都返回:

TypeError: no loader for this environment specified

我检查了手册和以下URL: https://gist.github.com/wrunk/1317933

I checked the manual and this url: https://gist.github.com/wrunk/1317933

但是在使用字符串时,未指定任何位置来选择加载程序.

However nowhere is specified to select a loader when using a string.

推荐答案

您可以从该列表

from jinja2 import Environment, BaseLoader

rtemplate = Environment(loader=BaseLoader).from_string(myString)
data = rtemplate.render(**data)

编辑:问题出在myString上,它有{% include 'test.html' %},而Jinja2不知道从何处获取模板.

Edit: The problem was with myString, it has {% include 'test.html' %} and Jinja2 has no idea where to get template from.

更新

正如@ iver56所指出的,最好这样做:

As @iver56 kindly noted, it's better to:

rtemplate = Environment(loader=BaseLoader()).from_string(myString)

这篇关于字符串中的jinja2加载模板:TypeError:未为此环境指定加载程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆