如何正确解压缩元组并显示它?



['34242342', 'Ford focus 2015', 'Chevrolet Impala 1960', 'Ford focus 2012', 'Dodge charger 2010', 'Dodge', 'New fiat punto 2012']创建自:(('34242342',), ('Ford focus 2015',), ('Chevrolet Impala 1960',))(未满(。

我想在我的模板上显示它:

{% for p in full %}
<form action="{% url 'table' %}" method="GET">

<input style="background-color:#2F4050;color:#A7B1C2; margin-top:5px;border: none; border-color: rgba(0,0,0,0.9);" type="submit" value={{ p }} name="button">
</form>
{% endfor %}

但是它没有显示完整的元素,而是剪切它:

34242342
Ford
Chevrolet
Ford
Dodge
New

如果我调用以下元素,它会正确显示所有内容:

{% for p in full %}
{{p}}
{% endfor %}

它仅在输入选项value剪切元素。

更新

views.py:

db = MySQLdb.connect(host="192.168.4.200",
user="root",
passwd="123456",
db="store", charset="utf8")
cur = db.cursor()

cur.callproc('store')

info = cur.fetchall()
full = info
new_list = []
for tup in full:
full = ",".join(tup)

new_list.append(full)

return render(request, 'table.html', {'full': new_list})

对数据库和显示数据的简单请求。

您可以使用列表推导解压缩 1 元组的元组:

data = (('34242342',), ('Ford focus 2015',), ('Chevrolet Impala 1960',))
result = [item for item, in data]

例如:

>>> [item for item, in data]
['34242342', 'Ford focus 2015', 'Chevrolet Impala 1960']

请注意逗号item,这会强制解压缩 1 元组。

如果元组可以包含更多元素,您也可以遍历这些元素:

result = [subitem for item in data for subitem in item]

话虽如此,请不要使用.values_list(..)来检索数据。检索模型对象。这样就可以保留模型中实现的逻辑。此外,强烈建议使用 Django ORM。Django的模型通常是使Django有效使用的原因。

在模板中,您应该为属性使用引号:

<input value="{{ p }}"name="button"<

最新更新