Django模板遍历字典的方法
来源:互联网 发布:php redis session 编辑:程序博客网 时间:2024/06/10 01:00
使用Python + Django做Web开发时,有时需要在view中传递一个字典给模板(template),如何在模板中遍历字典呢?
下面介绍两种方法:
views.py代码如下:
- dicts = {"key1": 1, "key2": 2, "key3": 3, }
- return render_to_response("index.html",{"dicts":dicts,},context_instance = RequestContext(request))
1.第一种遍历方法:
index.html代码如下:
- {% for key,value in dicts.items %}
- <tr class="{% cycle 'altrow' '' %}">
- <td>{{ forloop.counter }}</td>
- <td>{{ key }}</td>
- <td>{{ value }}</td>
- </tr>
- {% endfor %}
这种方法遍历字典,简单明了,但由于字典是无序的, 不能满足特定的要求,如:首先输出key2,在输出key1,key3。要做到这点就需要使用第二种方法。
2. 第二种使用自定义过滤器
1):首先自定义过滤器:
在Django的app包的合适位置创建一个templatetags包,它应该和models.py,
views.py等在同一级,例如:
polls/
models.py
templatetags/
views.py
添加两个文件到templatetags包(即该目录下),一个__init__.py文件(来告诉Python这是一个包含Python代码的模块)和一个包含你的自定义的标签/过滤器定义的文件,后者的文件名是你将在后面用来载入标签的名字,例如,如果你的自定义标签或者过滤器在一个叫myfilter.py文件里,你可以在模板里做下面的事情:
myfilter.py代码如下:
- from django import template
- register = template.Library()
- def key(d,key_name):
- value = 0
- try:
- value = d[key_name]
- except KeyError:
- value = 0
- return value
模板index.html代码如下:
- <tr class="altrow">
- <td>1</td>
- <td>key2</td>
- <td>{{ dicts|key:"key2" }}
- </td>
- </tr>
- <tr>
- <td>2</td>
- <td>key1</td>
- <td>{{ dicts|key:"key1" }}
- </td>
- </tr>
- <tr class="altrow">
- <td>3</td>
- <td>key3</td>
- <td>{{ dicts|key:"key3" }}</td>
- </tr>
阅读全文
0 0
- Django模板遍历字典的方法
- Django模板遍历字典的方法
- Django模板遍历字典的方法
- django 中模板遍历字典
- C#字典的遍历方法
- Python字典的遍历方法
- django post和get方法获取数据 数据在模板上的遍历
- django post和get方法获取数据 数据在模板上的遍历
- 遍历python字典的几种方法
- 遍历python字典的几种方法
- 遍历python字典的几种方法
- 遍历数组或字典的方法
- 遍历字典方法:HASH_ITER
- Django中调用模板的方法
- django模板导入static文件的方法
- 在Django模板中使用字典
- Django模板之显示字典中内容
- OC中数组、字典的遍历的三种方法
- php office文件(word/excel/ppt)转pdf文件
- awk、sed和cut 学习记录
- hadoop DataNode节点超时
- css动画之补间动画
- synchronized 对象锁 or 类锁?
- Django模板遍历字典的方法
- 在VS中使用#include <bits/stdc++.h>的方法
- java i++和++i的区别
- Java NIO 详解(一)
- IDEA提示Multi-catches are not supported at this language level的解决办法
- LINUX的IIC从这开始(一)
- there are no resources that can be add
- python 小游戏 之 汉诺塔
- Servlet 中文乱码解决方案