我如何在模板中的python-flask中对字典中的特定值进行排序



我是Python和Flask的新手,我正试图在下面的字典中循环,作为从数据库中获取数据的测试,并将其排序在特定的字段/列上,而不仅仅是按照创建列表的顺序打印列表。

即这将简单地打印出

{% for data in db_get_show_application_overview %}
<TD> {{ data.sao_application }} </TD>
<TD> {{ data.sao_primary_app_name }} </TD>
<TD> {{ data.sao_physical_server_name }} </TD>
{% endfor %}        

但我希望能够通过sao_physical_server_name字段或sao_primary_app_name来订购,而不是通过它的创建顺序,因为它本来是以dB为单位的。我一直在寻找类似的东西,但似乎什么也找不到。如果这个问题已经得到回答,那么很抱歉。

这可能吗?

db_get_show_application_overview = [
{
'sao_application': {'name': 'appname1'},
'sao_line_num': '1',
'sao_primary_app_name': 'A Application',
'sao_physical_server_name': 'server1'
},
{
'sao_application': {'name': 'appname2'},
'sao_line_num': '2',
'sao_primary_app_name': 'C Application',
'sao_physical_server_name': 'server1'
},
{
'sao_application': {'name': 'appname3'},
'sao_line_num': '3',
'sao_primary_app_name': 'B Application',
'sao_physical_server_name': 'server1'
}

]

谢谢你,

Paul

在将列表传递给模板之前,请尝试在后台对列表进行排序。

而不是按原样传递:

return render_tamplate('your_template.html', db_get_show_application_overview=db_get_show_application_overview)

通过排序:

return render_tamplate('your_template.html', db_get_show_application_overview=sorted(db_get_show_application_overview, key=your_key_function))

您可以使用键功能对列表进行排序。这是经过排序的文档,这是关于如何使用键函数的好教程。

例如,您可以根据sao_line_num:对它们进行排序

sorted(db_get_show_application_overview, key=lambda item: item['sao_line_num'])

这有帮助吗:-

db_get_show_application_overview = [
{
'sao_application': {'name': 'appname1'},
'sao_line_num': '1',
'sao_primary_app_name': 'A Application',
'sao_physical_server_name': 'server1'
},
{
'sao_application': {'name': 'appname2'},
'sao_line_num': '2',
'sao_primary_app_name': 'C Application',
'sao_physical_server_name': 'server1'
},
{
'sao_application': {'name': 'appname3'},
'sao_line_num': '3',
'sao_primary_app_name': 'B Application',
'sao_physical_server_name': 'server0'
}]
print(sorted(db_get_show_application_overview, key = lambda x: x['sao_physical_server_name']))

相关内容

  • 没有找到相关文章