我是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']))