<p>++++见底部的解决方案(第二次更新)++++</p>
<p>我是谷歌应用引擎和Python的新手。在</p>
<p>我有许多jinja2模板(它们是通过编程生成的)被存储为blob(因为GAE不允许程序写入文件)。我现在想呈现这些blob模板,但不知道如何在render语句中引用它们。在</p>
<p>如果需要,我可以将这些模板存储在blobstore中。在</p>
<p>如有任何建议,将不胜感激。这样一个呈现语句的示例将是超级的。在</p>
<p>(我将Django包含在标记中,因为我怀疑引用Django的模板可能与此类似。)</p>
<p>谢谢你的帮助。在</p>
<p>在++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++修改了问题后续尝试使用变量作为jinja2的模板源++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我试图让它与TextProperty字段一起工作,并做了一个简单的测试(假设我已经检索到文本字段),如下所示:</p>
<pre><code>FileTxt = '<html><body><br /><br /><p>The first test value starts here {{val1}}. And {{val2}} is the 2nd test value.</p></body></html>'
val1 = 'H value 1 H'
val2 = 'H second value H'
self.render_template(FileTxt, {'val1': val1, 'val2': val2})
</code></pre>
<p>这将返回“无效文件名”错误。在</p>
<p>我注意到它试图打开文件…\templates\。。。在</p>
<p>我想我必须以某种方式修改以下内容。在</p>
^{pr2}$
<p>我该如何修改它,使其在变量中而不是在文件中使用模板?或者我还需要做些什么才能使无文件版本工作?在</p>
<p>谢谢。在</p>
<p>在++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++以下是有效的!谢谢你们两个!++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++在</p>
<pre><code>class TextFileRender(BaseHandler):
def get(self):
val1 = 'H value 1 H'
val2 = 'H second value H'
env = jinja2.Environment(loader=jinja2.FunctionLoader(loader))
self.render_template(env.get_template('y'), {'val1': val1, 'val2': val2})
</code></pre>
<p>然后我在一个单独的.py文件中添加了加载程序(不知道为什么我总是要在一个单独的文件中调用函数,然后添加到import中)</p>
<pre><code>def loader(x):
r = '<html><body><br /><br /><p>The first test value starts here {{val1}}. And {{val2}} is the 2nd test value.</p></body></html>'
return r
</code></pre>
<p>上面的方法是有效的。但现在我的问题是,一个变量中的html内容扩展了另一个html模板(也存储在数据存储中)。我可以在html({%extends)主控形状中生成extends语句吗_模板.html“%})某种程度上像{%扩展nv.get_模板('master_template')%}?在</p>
<p>再次感谢你的帮助。在</p>