`

Django模板遍历字典的方法

阅读更多
 

 

使用Python + Django做Web开发时,有时需要在view中传递一个字典给模板(template),如何在模板中遍历字典呢?

下面介绍两种方法:

    views.py代码如下:

def forward(request):
    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
register.filter('key',key)

 

   模板index.html代码如下:

 

<!-- index.html -->
{% load myfilter %}
.........
<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>		  		  

 

分享到:
评论

相关推荐

    python-django模板

    接下来,我们将深入探讨“python-django模板”这个主题,以及如何在Django项目中创建和使用模板文件。 首先,Django的模板引擎允许开发者使用模板语言(Template Language,简称TL)来创建HTML或其他格式的文件,...

    Django模板语法视图向模板发送数据

    本节将深入探讨如何使用Django模板语法来向模板传递数据,以及如何利用模板语言进行逻辑处理,包括填充不同类型的Python数据、使用判断语句和循环语句。 首先,让我们了解如何向模板发送数据。在Django中,视图函数...

    django,模板中变量赋值.docx

    自定义标签的创建通常涉及定义一个 Python 类,继承自 `template.Node`,并在类中定义 `render` 方法,该方法接收一个 `context` 参数,用于访问模板上下文中的数据。然后通过 `register.tag` 注册这个自定义标签,...

    使用JavaScript获取Django模板指定键值数据

    总结来说,本文讨论了如何在Django模板中处理嵌套字典数据,特别是如何通过自定义过滤器来获取特定键值,以及如何在JavaScript中结合这些过滤器进行数据操作。通过这种方式,我们可以更灵活地处理复杂的数据结构,...

    django框架模板语言使用方法详解

    `for`循环可以遍历列表和字典,`if`语句支持条件判断。此外,还有`empty`标签用于处理空列表,`reversed`标签用于反向遍历。 - **过滤器**:过滤器可以对模板变量进行操作,如`date`用于格式化日期,`length`计算...

    django3.2模板

    **Django 3.2 模板详解** Django 3.2 是一个流行的 Python Web 开发框架的新版本,它提供了强大的功能和改进,以帮助开发者构建高效、可扩展的 Web 应用程序。在这一版本中,模板系统是其核心部分之一,用于呈现...

    Django模板语言 Tags使用详解

    下面将详细解释Django模板语言中Tags的使用方法和相关知识点。 首先,介绍的是循环相关的Tags。在DTL中,可以使用for标签来遍历一个序列,例如列表或数组。在循环中,有几个变量是特别有用的: - forloop.counter:...

    PythonWeb从入门到实战教程之6模板和模板引擎.zip

    在视图函数中,开发者会创建一个字典对象,其中包含了模板需要的所有变量,然后将这个字典作为参数传递给渲染模板的方法。 6. 模板标签: 模板标签用于执行更复杂的逻辑,如循环、条件判断等。它们以`{% %}`包裹,...

    Django 后台带有字典的列表数据与页面js交互实例

    在本文中,我们将探讨Django框架中如何处理带有字典的列表数据,并将其与前端JavaScript进行交互。这个实例特别关注如何在Django视图(views)中构建数据,然后在HTML模板中使用JavaScript来实现动态展示和交互。 ...

    Django实现将一个字典传到前端显示出来

    `items`方法用于遍历字典的键值对: ```html {% for m, n in field.items %} {{ m }}: {{ n }} {% endfor %} ``` 这将在页面上生成输出: ``` name: 张三 age: 18 ``` 如果需要直接根据键获取值,可以这样做: ...

    Django 模板 进阶

    本文将深入探讨Django模板的高级使用技巧,包括配置、定义、渲染以及模板语言的语法特性。 首先,配置Django模板涉及在项目的settings.py文件中设置`TEMPLATES`配置项。你需要在`DIRS`中指定一个或多个模板目录,...

    Python Django框架模板渲染功能示例

    本篇文章将深入探讨Django模板渲染的原理、配置以及实际应用。 首先,我们要在`settings.py`文件中配置模板引擎。Django默认使用`django.template.backends.django.DjangoTemplates`作为模板后端。在这里,我们需要...

    Django模板之基本的 for 循环 和 List内容的显示方式

    在Django模板语言中,`for`循环是用于遍历序列数据,如列表、元组或字典等,常用于动态地渲染网页内容。这里我们将深入探讨如何在Django模板中使用基本的`for`循环以及如何显示列表内容。 首先,让我们看一个简单的...

    Django Template 4.模板语法标签DTL

    模板语法DTL变量标签{{}}块标签{%%}遍历列表:正逆循环、正逆编号遍历字典:多个参数empty无记录csrf_tokenautoescape自动转义开启关闭注释 DTL django template language 模板语法,也就是之前在html写的django语言...

    Django框架中方法的访问和查找

    在 Django 模板中遍历复杂数据结构的关键是句点字符 (.)。 最好是用几个例子来说明一下。 比如,假设你要向模板传递一个 Python 字典。 要通过字典键访问该字典的值,可使用一个句点: &gt;&gt;&gt; from django.template ...

    Python关于 Django 的web- Form 表单验证

    开发者可以遍历这些错误,将它们显示在HTML模板中,以提供用户友好的反馈。 5. **表单渲染** 要在HTML页面上显示表单,可以使用`as_p()`, `as_table()`或`as_ul()`方法。这些方法会根据指定的格式将表单字段转换为...

    Django模板标签{% for %}循环,获取制定条数据实例

    在Django模板语言中,`{% for %}`循环是一种非常常用且强大的结构,用于遍历序列(如列表、元组或字典)并渲染其内容。这个标签允许开发者在模板中迭代数据,非常适合于动态生成HTML。在本文中,我们将深入探讨`{% ...

    django将数组传递给前台模板的方法

    总结来说,Django将数组传递给前台模板的方法主要包括以下步骤: 1. 在视图函数中获取数据并处理为列表。 2. 使用`render`函数将数据作为字典的键值对传递给模板。 3. 在模板中使用`for`循环遍历并展示数据。 4. 在...

Global site tag (gtag.js) - Google Analytics