【发布时间】:2013-02-06 14:32:31
【问题描述】:
我有一个从 sqlite3 数据库获得的元组列表。我试图以不同的方式获取数据库,但没有任何运气,这不是这个问题的人,但最终如果它有助于格式化我的单选按钮表单的描述,我会欣喜若狂。
我的列表如下:
images = [(1, u'True', u'file_Name.img', u'img', u'train', u'2013-02-0509:59:46.442660file.ext',
u' file2.ext', u'ABC', u"[u'prod_one-prod_two']", u'name@email.com',
u'nothing happens', u'2013-02-0509:59:46.442660', u"[u'ftp://link/file_Name.img',
u'ftp://link/file3.ext', u'ftp://link/file_Name.log']"),(2, u'True',u'file_Name.img',
u'img', u'train', u'2013-02-0509:59:46.442660file.ext', u' file2.ext', u'ABC',
u"[u'prod_one-prod_two']", u'name@email.com', u'nothing happens',
u'2013-02-0509:59:46.442660', u"[u'ftp://link/file_Name.img', 'ftp://link/file3.ext',
u'ftp://link/file_Name.log']")]
我想做的是让选择的值成为每个元组的第一个元素
rows = [(str(x[0]), x) for x in images]
form.images.choices = rows
但是看起来好像我只是用 unicode 字符和所有东西打印了那个乱七八糟的东西。
所以我尝试将其格式化为一个漂亮的表格,以便轻松查看每个元组包含的内容
descriptionList = []
description = ''
for i in images:
for j in i:
description = description + '\t|' + str(j)
descriptionList.append(description)
rows = [(str(x[0]), y) for x, y in zip(images, descriptionList)]
form.images.choices = rows
但是当我显示表单时它在输出中没有制表符。
所以现在我正在考虑将 descriptionList 传递到模板中,并将其显示在每个单选框旁边以充当表单中的描述。
return render_template('database.html', form=form, descriptions = descriptionList)
{% for subfield, desc in zip(form.images, descriptions) %}
<tr>
<td>{{ subfield }}</td>
{# {{ subfield.label }} (this is a comment)#}
desc <br>
</tr>
{% endfor %}
但是我收到错误“UndefinedError: 'zip' is undefined”
没有它我得到:
{% for subfield, desc in (form.images, descriptions) %}
ValueError: too many values to unpack
任何有关如何解决此问题的建议都令人惊叹。谢谢
【问题讨论】:
标签: python python-2.7 flask jinja2 flask-wtforms