我在python3烧瓶中写了自己的愿望清单(使用apache mod_wsgi)
这是我的愿望清单项目的数据结构:
{
},
"": {
"images": {
"pic": ""
},
"buylinks": {
"": {
"link": "",
"price": ""
}
},
"want": "",
"comments": ""
}
}
例如:
"Nintendo Joy-Con (L/R) - Gray": {
"images": {
"pic": "wishlist/joycons-grey.jpg"
},
"buylinks": {
"Amazon": {
"link": "https://www.amazon.com/dp/B01N6QKT7H",
"price": "66.99"
}
},
"want": "7/10",
"comments": "extra joycons for playing with friends on my switch"
},
现在,每次我更新包含心愿单数据的json文件时,apache服务器jinja模板都会以不同的顺序吐出iut
我的jinja模板看起来像
<table>
<tr>
<th>Name</th>
<th>Image(s)</th>
<th>Links To Buy</th>
<th>Want/10</th>
<th>Comments</th>
</tr>
{% for key in wishlist.keys() %}
<tr>
<td><b>{{ key }}</b></td>
<td>{% for image in wishlist[key]["images"].keys() %}
<img src="{{ url_for('static', filename=wishlist[key]["images"][image]) }}" width="250px">
{% endfor %}</td>
<td>{% for merchant in wishlist[key]["buylinks"].keys() %}
<a href="/redirect/?URL={{ wishlist[key]["buylinks"][merchant]["link"] }}&linkedfrom=wishlist" target="_blank">{{ merchant}} </a>(~${{ wishlist[key]["buylinks"][merchant]["price"] }})
<br>{% endfor %}</td>
<td><a> {{ wishlist[key]["want"] }} </a></td>
<td> {{ wishlist[key]["comments"] }}</td>
</tr>
{% endfor %}
</table>
如何修改{% for key in wishlist.keys() %}
行以按需求键的值对心愿单排序,以10/10开头,0/10结尾? (用于对示例项进行排序的值为“ 7/10”)
我认为我需要使用“排序”功能,但不确定如何使用
答案 0 :(得分:0)
因此要使其正常工作,我必须添加
wishlist_keys = sorted(wishlist.keys(), reverse=True, key=lambda x: wishlist[x]["want"] )
到我的烧瓶python代码,并将wishlist_keys传递到render_template()
并将模板更改为
{% for key in wishlist_keys %}