• <bdo id='yIv0a'></bdo><ul id='yIv0a'></ul>
  • <tfoot id='yIv0a'></tfoot>
    <i id='yIv0a'><tr id='yIv0a'><dt id='yIv0a'><q id='yIv0a'><span id='yIv0a'><b id='yIv0a'><form id='yIv0a'><ins id='yIv0a'></ins><ul id='yIv0a'></ul><sub id='yIv0a'></sub></form><legend id='yIv0a'></legend><bdo id='yIv0a'><pre id='yIv0a'><center id='yIv0a'></center></pre></bdo></b><th id='yIv0a'></th></span></q></dt></tr></i><div id='yIv0a'><tfoot id='yIv0a'></tfoot><dl id='yIv0a'><fieldset id='yIv0a'></fieldset></dl></div>
  • <legend id='yIv0a'><style id='yIv0a'><dir id='yIv0a'><q id='yIv0a'></q></dir></style></legend>
  • <small id='yIv0a'></small><noframes id='yIv0a'>

        可变内容的JJJA嵌套渲染

        时间:2024-08-21

          <tbody id='QwsHh'></tbody>
      1. <legend id='QwsHh'><style id='QwsHh'><dir id='QwsHh'><q id='QwsHh'></q></dir></style></legend>

        1. <small id='QwsHh'></small><noframes id='QwsHh'>

            • <bdo id='QwsHh'></bdo><ul id='QwsHh'></ul>
              <i id='QwsHh'><tr id='QwsHh'><dt id='QwsHh'><q id='QwsHh'><span id='QwsHh'><b id='QwsHh'><form id='QwsHh'><ins id='QwsHh'></ins><ul id='QwsHh'></ul><sub id='QwsHh'></sub></form><legend id='QwsHh'></legend><bdo id='QwsHh'><pre id='QwsHh'><center id='QwsHh'></center></pre></bdo></b><th id='QwsHh'></th></span></q></dt></tr></i><div id='QwsHh'><tfoot id='QwsHh'></tfoot><dl id='QwsHh'><fieldset id='QwsHh'></fieldset></dl></div>
                  <tfoot id='QwsHh'></tfoot>

                  本文介绍了可变内容的JJJA嵌套渲染的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  假设我在变量X中有实际的JJJA模板代码,假设X的内容是"{{SOME_OTHER_VARIABLE}}"。

                  如何在显示X的同时呈现其内容?

                  例如,这不起作用:

                  {{X}}

                  因为它只是将其呈现到屏幕"{{SOME_OTHER_VARIABLE}}",而不是SOME_OTHER_VARIABLE的内容。

                  我这样做的原因是我有一个站点,(受信任的)用户可以在其中创建帖子,这些帖子本身可能包含JJJA模板代码。视图页面显示这些帖子,但是由于上面的问题,我直接呈现它们,而不是按照我的意愿替换变量。

                  推荐答案

                  我知道有点晚了:)但这里有一个不影响模板代码的解决方案:

                  import jinja2
                  def recursive_render(tpl, values):
                       prev = tpl
                       while True:
                           curr = jinja2.Template(prev).render(**values)
                           if curr != prev:
                               prev = curr
                           else:
                               return curr
                  

                  测试运行:

                  >>> recursive_render("Hello {{X}}!", dict(X="{{name}}", name="world"))
                  u'Hello world!'
                  

                  请注意,这效率不高,因为每次迭代都必须从头开始重新分析模板。

                  这篇关于可变内容的JJJA嵌套渲染的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:如何在Flask/JJJA中选择/缩小词典列表 下一篇:保留未定义的变量

                  相关文章

                    <legend id='liDkz'><style id='liDkz'><dir id='liDkz'><q id='liDkz'></q></dir></style></legend>
                  1. <tfoot id='liDkz'></tfoot>

                      <small id='liDkz'></small><noframes id='liDkz'>

                      <i id='liDkz'><tr id='liDkz'><dt id='liDkz'><q id='liDkz'><span id='liDkz'><b id='liDkz'><form id='liDkz'><ins id='liDkz'></ins><ul id='liDkz'></ul><sub id='liDkz'></sub></form><legend id='liDkz'></legend><bdo id='liDkz'><pre id='liDkz'><center id='liDkz'></center></pre></bdo></b><th id='liDkz'></th></span></q></dt></tr></i><div id='liDkz'><tfoot id='liDkz'></tfoot><dl id='liDkz'><fieldset id='liDkz'></fieldset></dl></div>
                        <bdo id='liDkz'></bdo><ul id='liDkz'></ul>