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

How to correctly unpack tuple and display it?

['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})

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

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

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=<b>"{{ p }}"</b> name="button"<