08 Django 模板进阶

Posted Jason

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了08 Django 模板进阶相关的知识,希望对你有一定的参考价值。

本节主要讲 Django模板中的循环,条件判断,常用的标签,过滤器的使用

  1. 列表,字典,类的实例的使用

  2. 循环:迭代显示列表,字典等中的内容

  3. 条件判断:判断是否显示该内容,比如判断是手机访问,还是电脑访问,给出不一样的代码。

  4. 标签:for,if 这样的功能都是标签。

  5. 过滤器:管道符号后面的功能,比如{{ var|length }},求变量长度的 length 就是一个过滤器。

 

如果需要将一个或多个变量共享给多个网页或者所有网页使用,比如在网页上显示来访者的IP,这个可以使用 Django 上下文渲染器 来做。

实例一、显示一个基本的字符串在网页上

实例二、讲解了基本的 for 循环 和 List内容的显示

实例三、显示字典中内容

实例四、在模板进行 条件判断和 for 循环的详细操作

在for循环中还有很多有用的东西,如下:

变量描述
forloop.counter 索引从 1 开始算
forloop.counter0 索引从 0 开始算
forloop.revcounter 索引从最大长度到 1
forloop.revcounter0 索引从最大长度到 0
forloop.first 当遍历的元素为第一项时为真
forloop.last 当遍历的元素为最后一项时为真
forloop.parentloop

用在嵌套的 for 循环中,

获取上一层 for 循环的 forloop

当列表中可能为空值时用 for  empty

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% empty %}
    <li>抱歉,列表为空</li>
{% endfor %}
</ul>

views.py

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def index(request):
    # 1、显示一个基本的字符串在网页上
    string = 我在自强学院学习Django教程,非常感谢作者的无私奉献!
    # 2、基本的 for 循环 和 List内容的显示
    TutorialList = [html,CSS,jQuery,Python,Django]
    # 3、显示字典中的内容
    info_dic = {site:自强学堂,content:各种IT技术教程}
    # 4、条件判断和for循环
    list = map(str,range(21))
    return render(request,index.html,{string:string,TutorialList:TutorialList,
                                        info_dict:info_dic,list:list})

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MyTitle</title>
</head>
<body>
{{ string }}
<p>
    教程列表:
    {% for i in TutorialList %}
        <li>{{ i }}</li>
    {% endfor %}
</p>
<p><ol>

    <li>站点:{{ info_dict.site }}</li>
    <li>内容:{{ info_dict.content }}</li>
    </ol>
</p>
<p>
    {% for item in list %}
        {{ item }}{% if not forloop.last %},{% endif %}
    {% endfor %}
</p>
</body>
</html>

 

以上是关于08 Django 模板进阶的主要内容,如果未能解决你的问题,请参考以下文章

Django进阶-模板系统

Django模板进阶007

如何在 Django 中显式重置模板片段缓存?

使用 Django 模板作为片段

django进阶

JavaScript 片段在 Django 模板中不起作用