【问题标题】:getting list from dictionary in jinja从 jinja 的字典中获取列表
【发布时间】:2021-04-28 12:46:30
【问题描述】:

我得到这样的列表:

positions = [
      {
        "title": "Head of web development department",
        "salary": "180,000 - 200,000",
        "level": "lead",
        "tags": ["OOP", "Git", "Flask", "Redis", "Project Management", "People Management",
                 "Team Building", "Negotiating"],
      }
    ]

我需要获取 html 文本:
网页开发主管 面向对象 吉特

我的代码是:

   {% for k in positions %}
        <div>
            <h3>{{ k.title }}</h3>
            <p>{{k.salary}}</p>
            {% for tags_inside in {{k.tags}} %}
                <ul>  {{tags_inside}}</ul>
            {% endfor %}
        </div>
    {% endfor %}

我得到一个错误:

line 43, in template
    {{k.tags}{1}}
jinja2.exceptions.TemplateSyntaxError: unexpected '}'
127.0.0.1 - - [24/Jan/2021 17:36:45] "GET /data HTTP/1.1" 500 -

我应该如何解决这个问题?

【问题讨论】:

  • 它是python。 Python 网页模板引擎
  • from string import Template 当然。但这是完整的模板代码吗?
  • 问题中的代码和错误不匹配

标签: python html list dictionary jinja2


【解决方案1】:
from jinja2 import Template

positions = [
      {
        "title": "Head of web development department",
        "salary": "180,000 - 200,000",
        "level": "lead",
        "tags": ["OOP", "Git", "Flask", "Redis", "Project Management", "People Management",
                 "Team Building", "Negotiating"],
      }
    ]

templ  = Template("""
  {% for k in positions %}
        <div>
            <h3>{{ k.title }}</h3>
            <p>{{k.salary}}</p>
            <ul>
            {% for tags_inside in k.tags %}
                <li>{{tags_inside}}</li>
            {% endfor %}
            </ul>
        </div>
    {% endfor %}
""")

print(templ.render(positions=positions))

输出

        <div>
            <h3>Head of web development department</h3>
            <p>180,000 - 200,000</p>
            <ul>
            
                <li>OOP</li>
            
                <li>Git</li>
            
                <li>Flask</li>
            
                <li>Redis</li>
            
                <li>Project Management</li>
            
                <li>People Management</li>
            
                <li>Team Building</li>
            
                <li>Negotiating</li>
            
            </ul>
        </div>

【讨论】:

    猜你喜欢
    • 2020-03-26
    • 1970-01-01
    • 2011-11-08
    • 1970-01-01
    • 2012-06-21
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多