цикл по списку питонов и отображение результатов в колбе - PullRequest
0 голосов
/ 03 октября 2018

Функция Python возвращает список Python

Функция модуля Python

with open(xml_append_back) as fd1:
    doc = xmltodict.parse(fd1.read())
    codes = []

    for p in doc['Des']['Config']:
            codes.append(p['@Id'])
            codes.append(pl['@name'])


print(codes)
return codes

codes = ['f2ee4681', 'Conf. no: 1', '89282c5b', 'Conf. no: 2', '3e9dd219', 'Conf. no: 3', '773044b9'] # returned from python  to flask template result.html

Я вызываю эту переменную в моих шаблонах / flask.html, как этот файл фляги

@app.route('/result',methods = ['POST', 'GET'])
def result():

const_ids=run_d.run_de_selected_configs() # this function returns "codes" 

return render_template("result.html",result = 
constraint_names_from_form,result1=constraint_ids)

файл result.html

{% for key,key1  in result1 %}
<tr class="even"><td>{{ key }}</td><td>{{ key1 }}</td></tr> 

должен быть

<tr class="even"><td>f2ee4681</td><td>Conf. no: 1</td></tr>
{% endfor %}

Что я делаю не так

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

В настоящее время ваш код упаковывает все значения Id и name в один плоский список.Это не сработает, если позже вам нужно будет выполнить итерацию по нему, так как вы хотите получить два значения для каждой итерации, а вы получаете только одно.

Хотя есть несколько способов итерации по парам из списка (например,zip(*[iter(x)]*2)), я бы посоветовал вам просто создать список кортежей напрямую.

Попробуйте изменить:

        codes.append(planet['@Id'])
        codes.append(planet['@name'])

На:

        codes.append((planet['@Id'], planet['@name']))
0 голосов
/ 04 октября 2018

Чтобы ответить на мой собственный вопрос, я использовал zip-утилиту в своем коде python, поскольку zip недоступен во флешке

function returncodes()
-------
--------- 

return zip(codes,codeNames) # in my case

без изменений в шаблоне фляги

@app.route('/result',methods = ['POST', 'GET'])
def result():

const_ids=run_d.run_de_selected_configs() # this function returns "codes" 

return render_template("result.html",result = 
constraint_names_from_form,result1=constraint_ids)

сейчас в моемresult.html

{% for keys,keys2 in result1 %}
<tr class="even"><td>{{keys}}</td><td>{{keys2}}</td></tr>

 {% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...