You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Flask模板中如何按字典指定字段值进行排序展示

这个需求完全可以实现,有两种常用实现方式:

方案1:后端提前排序(更推荐)

在Flask的视图函数中将数据传给模板前,先调用Python内置的sorted()函数完成排序,符合逻辑与视图分离的开发规范,性能也更好。
示例代码(按sao_primary_app_name升序排序):

# 按应用名称升序排序
db_get_show_application_overview = sorted(db_get_show_application_overview, key=lambda item: item['sao_primary_app_name'])
# 如果要按服务器名称排序,修改key即可:
# db_get_show_application_overview = sorted(db_get_show_application_overview, key=lambda item: item['sao_physical_server_name'])
# 如需降序,添加reverse=True参数:
# db_get_show_application_overview = sorted(db_get_show_application_overview, key=lambda item: item['sao_primary_app_name'], reverse=True)

排序完成后再把数据传给模板,原来的模板遍历代码不需要修改。

方案2:直接在Jinja2模板中排序

如果不想修改后端代码,可以直接使用Jinja2内置的sort过滤器完成排序,只需要修改模板中的遍历语句即可。
示例代码(按sao_primary_app_name升序排序):

{% for data in db_get_show_application_overview|sort(attribute='sao_primary_app_name') %}
    <td> {{ data.sao_application.name }} </td>
    <td> {{ data.sao_primary_app_name }} </td>
    <td> {{ data.sao_physical_server_name }} </td>
{% endfor %}
  • 要按sao_physical_server_name排序,把attribute的值改为sao_physical_server_name即可
  • 如需降序排序,添加reverse=true参数:sort(attribute='sao_primary_app_name', reverse=true)
  • 额外提示:你原有代码中直接输出{{ data.sao_application }}会显示字典对象,要展示应用名需要取name属性,即{{ data.sao_application.name }}

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:18:02