使用 flask jinja2 和 bootstrap 模板来回传递 url 和 ID

Passing urls and IDs back and forth using flask jinja2 and bootstrap templates

Flask/jinja2/bootstrap 菜鸟在这里。我正在使用 flask、jinja2 和 bootstrap 模板制作一个基本网页。使用下面的 {% for product in products %},我试图显示多个产品面板(在本例中来自亚马逊),我正在尝试使用 {{product['imgurl']}}在每个面板中分配图像 url。除此之外,由于使用 {% for product in products %} 创建了多个按钮,我还想检测单击了哪个按钮,并以某种方式将其传递回单击按钮时调用的下一页, 两个问题详述如下:

   <div class="container">
    <div class="starter-template">
     <h1><span class="label label-primary">Here are the top results:</span></h1>

     {% for product in products %}
      <div class="row">
      <div class="col-sm-6 col-md-4">
        <div class="thumbnail">
          <img src="{{product['imgurl']}}" alt="...">
          <div class="caption">
            <h3>{{product['name']}}</h3>
            <p>{{product['blurb']}}</p>
            <p><a href="/output2" class="btn btn-primary" role="button"><element id={{ product['ASIN']}}>Choose Set</a></p>
          </div>
        </div>
      </div>
      {% endfor %}
     </div>
     <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
     <script src="static/js/bootstrap.min.js"></script>
   </div> <!-- /.container-->
  1. 我希望我的 html 代码使用 product['imgurl'] 变量从外部网站获取图像,我知道如何为单个 'img src=',但不是如何在 for 循环中执行。

  2. 第二个问题是获取被点击按钮的ID。正如您从上面的代码中看到的,我正在使用 "element id={{ product['ASIN']}}" 为每个按钮分配一个 ID,但是我如何将被单击按钮的 'id' 集成到生成的 "a href=" 中? " 调用,所以 'id 被传递到下一页?

我不确定这是否可以在 flask/jinja2/bootstrap 框架内完成。如果可以的话,任何关于此的 help/solution 将不胜感激,到目前为止我已经花了很多时间搜索这个,但我一直无法找到明确的答案或方法。谢谢..

对于问题 1,我认为你可以使用点符号而不是索引字典。

{% for product in products %}
    <div class="row">
      <div class="col-sm-6 col-md-4">
        <div class="thumbnail">
          <img src="{{product.imgurl}}" alt="...">
          <div class="caption">
            <h3>{{product.name}}</h3>
            <p>{{product.blurb}}</p>
            <p>
                <a href="/output2" class="btn btn-primary" role="button">
                    <element id={{ product.ASIN}}>Choose Set</a>
            </p>
          </div>
        </div>
    </div>
{% endfor %}

对于第二个问题和获取元素的id,我喜欢做以下事情:

{% for product in products %}
      <div class="row">
          <a class="itemId" data-item-id="{{product.id}}">Click here to get the id</a>
      </div>
{% endfor %}

然后您可以使用 jQuery 并执行此操作:

$(".itemId").click(function(){
    var itemId = $(this).data("item-id");
    alert(itemId);
});
 <p><a href="/output2?{{product.ASIN}}" class="btn btn-primary" role="button">Choose Set</a></p>

这成功了,它获取了与当前帧关联的 product.ASIN 并将其传递到下一页!!