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
我这样在我的templates / 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 %}
我在做什么错
答案 0 :(得分:0)
回答我自己的问题 我在python代码中使用了zip实用程序,因为烧瓶中没有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 %}
答案 1 :(得分:0)
当前,您的代码将所有Id
和name
值打包到一个平面列表中。当您以后需要对其进行迭代时,该方法将无法正常工作,因为您希望每次迭代获得两个值,而只获得一个。
虽然有一些方法可以迭代列表中的对(例如zip(*[iter(x)]*2)
),但我建议您直接建立一个元组列表。
尝试更改:
codes.append(planet['@Id'])
codes.append(planet['@name'])
收件人:
codes.append((planet['@Id'], planet['@name']))