【问题标题】:Jinja/Flask iterating through a dictionary and passing values to a bootstrap carouselJinja/Flask 遍历字典并将值传递给引导轮播
【发布时间】:2021-07-23 08:31:34
【问题描述】:

我正在尝试遍历 python/jinja/flask 中的字典字典,并将值传递到引导轮播。有事情挂了,我一直在绞尽脑汁和鸭子聊天几个小时,因为我是菜鸟,所以我要向不那么活泼的人寻求帮助。

portfolio_entries = {1: {"title": "Website",
                         "pic":"picture.png",
                         "link":"https://www.website.com/",
                         "description":"A website."}

@app.route("/portfolio")
def portfolio():
    return render_template("portfolio.html", all_sites=portfolio_entries)

来自模板:

{% for site in all_sites %}
<div class="carousel-item">
  <img class="d-block w-100" src="{{url_for('static', filename='../static/img/site.pic')}}" alt="{{site.title}}">
  <h1><a href="{{site.link}}" target="_blank">{{site.title}}</a></h1>
  <p>{{site.description}}</p>
</div>
{% endfor %}

提前致谢!

【问题讨论】:

    标签: python html twitter-bootstrap flask jinja2


    【解决方案1】:

    您的词典末尾缺少一个大括号,因此应如下所示:

    portfolio_entries = {1: {"title": "Website",
                         "pic":"picture.png",
                         "link":"https://www.website.com/",
                         "description":"A website."}}
    

    Dictionaries in Python 不支持点属性。您必须使用索引语法,即两个方括号。此外,在您的情况下,您必须访问嵌套的字典项。

    你的代码应该是这样的:

    {% for site in all_sites %}
    
    <div class="carousel-item">
      <img class="d-block w-100" src="{{url_for('static', filename='../static/img/site.pic')}}" alt="{{ all_sites[site]['title'] }}">
      <h1><a href="{{ all_sites[site]['link'] }}" target="_blank">{{ all_sites[site]['title'] }}</a></h1>
      <p>{{ all_sites[site]['description'] }}</p>
    </div>
    
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多