首页 > 代码库 > django学习笔记之forloop

django学习笔记之forloop

在学习django时候,看到djangobook中关于forloop知识详解中,有这么一句话"在一个 {% for %} 块中,已存在的变量会被移除,以避免 forloop 变量被覆盖",这到底是什么含义呢?下面我们来通过实例说明他的含义:

python manager.py shell
>>>
>>>from django.template import Template, Context
>>>t = Template("""
       {% for item in items %}
          {{ forloop }}
       {% endfor %}
       """)
>>>c = Context({‘items‘: [item for item in range(10)], ‘forloop‘: ‘test‘})
>>>print t.render(c)

wKioL1PLEAPxScErAAdzoa68LNo685.jpg

这里我们故意在Context里面设置一个forloop字典key,然后在模板里面放一个forloop变量来"引用"传递过来的值,但是结果确不是我们想要的......

>>>t = Template("""
       {% for item in items %}
          {{ forloop.parentloop }}
       {% endfor %}
       """)
>>>c = Context({‘items‘: [item for item in range(10)], ‘forloop‘: ‘test‘})
>>>print t.render(c)

wKiom1PLEIHQsFfQAACtdt2mc0o342.jpg

这个结果就是我们想要的嘛


#########################################################################

结论: 

  1. 家里人总比外来人要亲嘛!

  2. " 局部变量权利大于外部变量"

  3. ......

本文出自 “木子博客” 博客,请务必保留此出处http://ggbond.blog.51cto.com/8886865/1440427

django学习笔记之forloop