<bdo id='VJnb4'></bdo><ul id='VJnb4'></ul>

  • <tfoot id='VJnb4'></tfoot>

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

        保留未定义的变量

        时间:2024-08-21
      2. <i id='gQzen'><tr id='gQzen'><dt id='gQzen'><q id='gQzen'><span id='gQzen'><b id='gQzen'><form id='gQzen'><ins id='gQzen'></ins><ul id='gQzen'></ul><sub id='gQzen'></sub></form><legend id='gQzen'></legend><bdo id='gQzen'><pre id='gQzen'><center id='gQzen'></center></pre></bdo></b><th id='gQzen'></th></span></q></dt></tr></i><div id='gQzen'><tfoot id='gQzen'></tfoot><dl id='gQzen'><fieldset id='gQzen'></fieldset></dl></div>

              <bdo id='gQzen'></bdo><ul id='gQzen'></ul>

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

                  <tbody id='gQzen'></tbody>
              • <legend id='gQzen'><style id='gQzen'><dir id='gQzen'><q id='gQzen'></q></dir></style></legend>

                  <tfoot id='gQzen'></tfoot>
                  本文介绍了保留未定义的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我感兴趣的是分多个步骤呈现模板,或者在JJIA2中保留未定义变量的标记。我相信这不仅意味着创建"UnfinedSilent";"类(这样模板就不会在缺少数据时崩溃),而且如果缺少标记,还会保留具有适当变量名的标记。

                  示例: 假设上下文中包含Name=";Test";,但缺少数量

                  赠送以下模板:

                  <p>{{name}} has {{quantity}}</p>
                  

                  呈现后,我需要模板变为:

                  <p>test has {{quantity}}</p>
                  

                  有人知道这是否可以实现吗?

                  推荐答案

                  我也看到了同样的行为。库jinja2schema提供模板所需的变量架构。

                  我的解决方案的步骤如下:

                  • 有模板
                  • 获取架构结构
                  • 提供一些要填写的数据
                  • 用原始字符串填充缺失项目的完整de数据
                  from jinja2 import Template
                  import jinja2schema
                  
                  def assign(schema, data, root=''):
                      '''Returns a corrected data with untouched missing fields
                  
                      '''
                  
                      out = {}
                      for key in schema.keys():
                  
                          if isinstance(schema[key], (str, jinja2schema.model.Scalar)): 
                              try:
                                  out[key] = data[key]
                              except:
                                  out[key] = f'{{{{ {root+key} }}}}'
                  
                          elif isinstance(schema[key], (dict, jinja2schema.model.Dictionary)):
                              out[key]={}
                              try:
                                  data[key]
                              except:
                                  data[key] = {}
                              out[key] = assign(schema[key], data[key], root+key+'.')
                  
                      return out
                  
                  # original template
                  template_str = '<p>{{name}} has {{quantity}}</p>'
                  # read schema
                  schema = jinja2schema.infer(template_str)
                  # available data
                  data = {'name':'test'}
                  # data autocompleted
                  data_corrected = assign(schema, data)
                  # render
                  template = Template(template_str)
                  print(template.render(data_corrected))
                  

                  输出为

                  <p>test has {{ quantity }}</p>
                  

                  这是预期的结果。

                  希望它能有所帮助。此解决方案不适用于列表,但我认为可以扩展该解决方案。如果需要,您还可以获取缺少的字段列表。

                  这篇关于保留未定义的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                    <tbody id='y95Op'></tbody>
                  • <bdo id='y95Op'></bdo><ul id='y95Op'></ul>

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

                    <tfoot id='y95Op'></tfoot>

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