Jinja2 не может отображать список слияния нормально - PullRequest
0 голосов
/ 28 февраля 2020

Я делаю слияние списка в рамках flask и печатаю список обычно:

def search ():
    search_list_a = []
    search_list_b = []
    search_list_c = []
    if request.method == 'POST':
        commit_ip = request.form ['commit_ip']
        search_list_a.extend (sql_query1 (commit_ip))
        search_list_b.extend (sql_query2 (commit_ip))
        search_list_c.extend (sql_query3 (commit_ip))
       search_list_all = search_list_a + search_list_b +
       search_list_c
      return render_template ('result.html', search_list_all = search_list_all)
return render_template ('search.html')

>>> print (a)
['None', 'none']
>>> print (b)
['None', 'none', 'none']
>>> print (c)
['FO', 'Pto', '21: 20: 43,092 ']
>>> print (search_list_all)
['None', 'None', 'None', 'None', 'None', '23 .12 ',' FO ',' Pto ', '21: 20: 43,092']

Но после вывода в html jinja2 печать списка отличается от flask

<table class = "table table-bordered">
<p>{{ search_list_all }}</p>

html дисплей

['None', 'None', 'None', 'None', 'None', ('23 .12 ',' FO ',' Pto ', '21: 20: 43,092')]

Что делать с jinja2

1 Ответ

0 голосов
/ 28 февраля 2020

Один простой способ сделать это можно следующим образом:


l = ['None', 'None', 'None', 'None', 'None', ('23 .12 ',' FO ',' Pto ', '21: 20: 43,092')]

flat_list = []
for item in l:
    if type(item) is tuple:
      flat_list.extend(list(item))
    else:
      flat_list.append(item)

print("Flat_list", flat_list)

Это приведет к ['None', 'None', 'None', 'None', 'None', '23 .12 ', ' FO', ' Pto ', '21: 20: 43,092']

Что делает этот фрагмент, если элемент списка является кортежем, то он преобразует его в список, а затем объединяет его с остальной частью списка.

...