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>
原文地址:https://www.cnblogs.com/jasonli-01/p/6677116.html