是否可以在没有文件路径的情况下使用template.render()?
我想在我的数据存储区中为文本属性执行动态字符串替换。立即想到了模板。也许还有另一种方式?我的想法如下......
my_string = template.render(my_model.description,template_dict)
答案 0 :(得分:1)
从“google-app-engine”标签来看,我假设你在谈论google.appengine.ext.webapp
提供的模板引擎?根据{{3}}:“为方便起见,webapp模块包含Django的模板引擎”。那么看看documentation ...
据我所知,您应该可以执行以下操作(我假设my_model.description
包含您的模板字符串?):
t = template.Template(my_model.description)
my_string = t.render(template.Context(template_dict))
的webapp代码可能也很有用
答案 1 :(得分:0)
没有官方支持的方法来使用基于非文件的模板与webapp template.render()
这是一种适用于1.5.1的不支持的方式(之后很可能不工作):
class StringTemplate(webapp.RequestHandler):
def get(self):
import django.template
mytemplate = "<html>...</html>"
t = django.template.Template(mytemplate)
fake_path = os.path.abspath("main.py") # or any uploaded file
template.template_cache[fake_path] = t
self.response.out.write(template.render(fake_path, {})
使用 app.yaml
是因为模板缓存使用模板的绝对路径作为键,因此任何真实文件都将作为伪模板源。但这是一个可能会改变的实施细节。