查询集:其处理SQL响应和返回表示结果的蟒构建一个Django类。尽管它在很多方面都像列表一样运行,但它实际上就是所谓的“可迭代”。它只是嘲笑一个列表的行为,让你可以像使用for循环一样使用它。
Tuple:一个不可变的列表。这意味着一旦设定,就不能改变。几乎在所有其他方面,它的行为就像一个列表。
词典:也被称为其他语言的散列。它可以被认为是“键控列表”。最严格意义上的“列表”是一组连续存储在内存中的项目。在过去的编程中,您必须“弹出”项目并将项目“推”到列表中,并且只能以FIFO或先入先出的方式进行检索。字典提供了一种在列表中“查找”项目的方法。它由键值对组成,因此您可以引用键并获取附加值。
现在的Django模板方面:
查询集:您遍历这些使用标准方法。一旦得到类似MyModel.objects.all()的结果,您可以使用{% for value in queryset %}标签。
元组:就迭代而言,它们的行为与标准列表完全相同。您也可以只使用{% for value in tuple %}标签。唯一潜在的问题是有时你最终会得到元组的元组或元组列表。这些就像多级列表一样。你必须迭代外部列表或元组,然后遍历内部列表或迭代。
字典:这些可能是最复杂的,只是因为他们需要一个方法调用来获得一个可迭代的对象。
mydict.iteritems() # returns an iterable consisting of `(key, value)` tuples.
mydict.iterkeys() # returns an iterable consisting of the keys. You can then use mydict[key] to get the values
mydict.itervalues() # returns an iterable consisting of the values.
的最后一个方法可能是在Django模板的最佳简单迭代:
{% for value in mydict.itervalues %}