zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    NYOJ 158 省赛来了(变相组合数)
    NYOJ 111 分数加减法
    NYOJ 14 会场安排问题 (贪心)
    POJ 3903 Stock Exchange(LIS)
    NYOJ 456 邮票分你一半(01背包)
    HDU 4521 小明系列问题——小明序列 (LIS加强版)
    CSU 1120 病毒(经典模板例题:最长公共递增子序列)
    挑战程序设计竞赛里面的几道深度优先搜索
    2009 Multi-University Training Contest 4
    USACO sec1.1
  • 原文地址:https://www.cnblogs.com/jasonli-01/p/6677116.html
Copyright © 2011-2022 走看看