精华内容
下载资源
问答
  • django模板标签

    2019-09-11 11:10:32
    django模板标签 一、模板标签 1.1 模板标签简介 1.2 常用标签 1.3 模板标签示例 二、模板的继承与引用 21. 模板继承示例 2.2 模板继承总结

    django模板标签

    一、模板标签

    1.1 模板标签简介

    在这里插入图片描述

    1.2 常用标签

    在这里插入图片描述

    1.3 模板标签示例

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、模板的继承与引用

    21. 模板继承示例

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.2 模板继承总结

    在这里插入图片描述

    展开全文
  • Django 模板标签

    2018-07-27 12:20:44
    Django 模板标签 Django 模板标签笔记,参考并补充 Django 模板 | 菜鸟教程 变量 使用双引号: <h1>{{ hello }}</h1> if/else 标签 if/else 对变量判断真假...

    Django 模板标签

    Django 模板标签笔记,参考并补充 Django 模板 | 菜鸟教程


    变量

    使用双引号:

    <h1>{{ hello }}</h1>

    if/else 标签

    if/else 对变量判断真假,支持嵌套:

    {% if condition1 %}
       ... display 1
    {% elif condition2 %}
       ... display 2
    {% else %}
       ... display 3
    {% endif %}

    {% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如:

    {% if athlete_list and coach_list %}
         athletes 和 coaches 变量都是可用的
    {% endif %}

    ifequal/ifnotequal 标签

    {% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的内容:

    {% ifequal user currentuser %}
        <h1>Welcome!</h1>
    {% endifequal %}

    类似,支持可选的 {% else%} 标签:

    {% ifequal section 'sitenews' %}
        <h1>Site News</h1>
    {% else %}
        <h1>No News Here</h1>
    {% endifequal %}

    for 标签

    {% for %} 允许我们在一个序列上迭代,支持嵌套使用 {% for %} 标签:

    <ul>
    {% for athlete in athlete_list %}
        <li>{{ athlete.name }}</li>
    {% endfor %}
    </ul>

    给标签增加一个 reversed 使得该列表被反向迭代:

    {% for athlete in athlete_list reversed %}
    ...
    {% endfor %}

    注释标签

    {# 这是一个注释 #}

    include 标签

    {% include %} 标签允许在模板中包含其它的模板的内容:

    {% include "nav.html" %}

    过滤器

    模板过滤器可以在变量被显示前修改它,过滤器使用管道字符 ” | ”

    • lower: {{ name }} 变量被过滤器 lower 处理后,文档大写转换文本为小写:
    {{ name|lower }}
    • first: 返回列表的第1个元素,变量必须是一个列表
    • upper: 过滤管道可以被 *套接* ,一个过滤器管道的输出又可以作为下一个管道的输入,以下实例取第一个元素并将其转化为大写:
    {{ my_list|first|upper }}
    • truncatewords: 将字符串转换为省略表达方式, 过滤器的参数跟随冒号之后并且总是以双引号包含:
    {{ bio|truncatewords:"30" }}    #显示变量 bio 的前30个词
    • addslashes: 添加反斜杠(转义字符)到任何反斜杠、单引号或者双引号前面
    • length: 返回变量的长度
    • date: 按指定的格式字符串参数格式化 date 或者 datetime 对象:
    {{ pub_date|date:"F j, Y" }}    #F 月份, j 每月第几天, Y Year 4位数字表示

    模板继承

    模板可以用继承的方式来实现复用
    base.html:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title> Django 模板 </title>
    </head>
    <body>
        <h1>Hello Django!</h1>
        <p>Django 模板标签</p>
        {% block mainbody %}
            <p>我是老大</p>
        {% endblock %}
    </body>
    </html>

    以上代码中,名为 mainbody 的 block 标签是可以被继承者们替换掉的部分;
    所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。

    hello.html 中继承 base.html:

    {% extends "base.html" %}
    {% block mainbody %}
        <p>我是老二,继承了base.html文件</p>
    {% endblock %}
    展开全文
  • Django模板标签

    2019-06-03 12:09:17
    Django模板标签 模板文件(templates)一般位于新创建的APP目录下面,Django会自动去这个文件夹中找 1.Django模板查找机制 Django 查找模板的过程是在每个 app 的 templates 文件夹中找,而不只是当前 app 中的...

    Django模板标签

    模板文件(templates)一般位于新创建的APP目录下面,Django会自动去这个文件夹中找

    1.Django模板查找机制

    Django 查找模板的过程是在每个 app 的 templates 文件夹中找,而不只是当前 app 中的templates 文件夹中找。各个 app 的 templates 形成一个文件夹列表,Django 遍历这个列表,一个个文件夹进行查找,当在某一个文件夹找到的时候就停止,所有的都遍历完了还找不到指定的模板的时候就是 Template Not Found (过程类似于Python找包)。

    例如:项目 zqxt 有两个 app,分别为 tutorial 和 tryit

    zqxt
    ├── tutorial
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── models.py
    │   ├── templates
    │   │   └── tutorial
    │   │       ├── index.html
    │   │       └── search.html
    │   ├── tests.py
    │   └── views.py
    ├── tryit
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── models.py
    │   ├── templates
    │   │   └── tryit
    │   │       ├── index.html
    │   │       └── poll.html
    │   ├── tests.py
    │   └── views.py
    ├── manage.py
    └── zqxt
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py
    

    这样,使用的时候,模板就是 “tutorial/index.html” 和 “tryit/index.html” 这样有app作为名称的一部分,就不会混淆。

    2.Django的上下文渲染器

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

    **简单总结一下:**一般的变量之类的用 {{ }}(变量),功能类的,比如循环,条件判断是用 {% %}(标签)

    (1)显示一个基本的字符串在网页上

    views.py

    from django.shortcuts import render
    def home(request):
        s = u"我在自强学堂学习Django,用它来建网站"
        return render(request, 'home.html', {'string': s})
    

    home.html

    {{ string }}
    

    (2)基本的 for 循环

    views.py

    from django.shortcuts import render
    def home(request):
        TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
        return render(request, 'home.html', {'TutorialList': TutorialList})
    

    home.html

    {% for i in TutorialList %}
    {{ i }}
    {% endfor %}
    

    (3)显示字典中的内容

    views.py

    def home(request):
        info_dict = {'site': u'自强学堂', 'content': u'各种IT技术教程'}
        return render(request, 'home.html', {'info_dict': info_dict})
    

    home.html

    {% for key, value in info_dict.items %}
        {{ key }}: {{ value }}
    {% endfor %}
    

    (4)条件判断

    forloop.last判断是否是最后一个元素

    {% for item in List %}
        {{ item }}{% if not forloop.last %},{% endif %} 
    {% endfor %}
    

    for循环中其他的方法:

    变量 描述
    forloop.counter 索引从 1 开始算
    forloop.counter0 索引从 0 开始算
    forloop.revcounter 索引从最大长度到 1
    forloop.revcounter0 索引从最大长度到 0
    forloop.first 当遍历的元素为第一项时为真
    forloop.last 当遍历的元素为最后一项时为真
    forloop.parentloop 用在嵌套的 for 循环中,获取上一层 for 循环的 forloop

    当列表中可能为空值时用 {% empty %}

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

    (5)模板上得到视图对应的网址

    {% url ‘网址名称’ 参数1 参数2 参数3… %}

    还可以使用 as 语句将内容取别名(相当于定义一个变量),多次使用(但视图名称到网址转换只进行了一次)

    {% url '网址名称' arg1 arg2 as the_url %}
    <a href="{{ the_url }}">链接到:{{ the_url }}</a>
    

    (6)逻辑操作

    ==, !=, >=, <=, >, < 这些比较都可以在模板中使用

    {% if var >= 90 %}
    成绩优秀,自强学堂你没少去吧!学得不错
    {% elif var >= 80 %}
    成绩良好
    {% elif var >= 70 %}
    成绩一般
    {% elif var >= 60 %}
    需要努力
    {% else %}
    不及格啊,大哥!多去自强学堂学习啊!
    {% endif %}
    

    (7)获取当前用户

    {{ request.user }}
    

    如果登陆就显示内容,不登陆就不显示内容:

    {% if request.user.is_authenticated %}
        {{ request.user.username }},您好!
    {% else %}
        请登陆,这里放登陆链接
    {% endif %}
    

    (8)获取当前网址

    {{ request.path }}
    

    (9)获取当前GET参数

    {{ request.GET.urlencode }}
    

    合并到一起用

    <a href="{{ request.path }}?{{ request.GET.urlencode }}&delete=1">当前网址加参数 delete</a>
    

    完整的内容参考官方文档:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/

    展开全文
  • django 模板标签

    2017-04-12 21:40:00
    Django模板乘法: 下面的代码表示:5/1 *100,返回500,widthratio需要三个参数,它会使用 参数1/参数 {% widthratio 5 1 100 %}   自定义模板标签: register = template.Library() @register....


     

    for 标签中 如果循环的列表为空

    可以用关键字empty

    user={'usernmae':'james','age':27}

    用 for k, v in user.items 可以取出键和值

    {% for athlete in athlete_list %}
        &lt;p&gt;{{ athlete.name }}&lt;/p&gt;
    {% empty %}
        There are no athletes. Only computer programmers
    {% endfor %}

     

    forloop.counter 总是一个表示当前循环的执行次数的整数计数器。 这个计数器是从1开始的,所以在第一次循环时forloop.counter 将会被设置为1。

    {% for item in todo_list %}
        <p>{{ forloop.counter }}: {{ item }}</p>
    {% endfor %}

    处理‘#’

    <span style="background-color:{{ '#' }}{{ product.color }}" class="line"> </span>

    Django模板乘法:
    下面的代码表示:5/1 *100,返回500,widthratio需要三个参数,它会使用 参数1/参数

    {% widthratio 5 1 100 %}
    

     

    自定义模板标签:

    register = template.Library()
    
    
    @register.assignment_tag()
    def last_drop_free(request):
        key = 'free_case_luck_players'
        trade_list_new = cache.get(key)
        if trade_list_new is None:
            trade_list_new = []
        if not trade_list_new:
            trade_list = UnpackOrderFree.objects.filter(status=1).order_by('-created','-buyback_price').values('trade_data','buyback_price','buyer__avatar','buyer__personaname','flag')[:10]
            if trade_list:
                for item in trade_list:
                    item['avatar'] = item.get('buyer__avatar')
                    item['user_name'] = item.get('buyer__personaname')
                    item['amount'] = item.get('buyback_price')
                    if item.get('trade_data'):
                        item['box_name'] = json.loads(item.get('trade_data')).get('name')
                        item['icon_url'] = json.loads(item.get('trade_data')).get('pic')
                    trade_list_new.append(item)
                cache.set(key, trade_list_new, timeout=600)
        return {"trade_list": trade_list_new}

    页面引用模板标签:

     {% load unpack_tag %}

     {% last_drop_free request as data %}

     

    转载于:https://my.oschina.net/jamescasta/blog/877920

    展开全文
  • 本文关于模板继承的好处的内容系引用自keithzone的博客“django 模板”,链接:... Django模板标签 for标签 {% for name in names %} {% endfor %} <tbody> {% for s...
  • 主要介绍了Django模板标签中url使用详解(url跳转到指定页面),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了Django模板标签{% for %}循环,获取制定条数据实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Django模板标签regroup的妙用 在使用 Django 开发时,有时候我们需要在模板中按对象的某个属性分组显示一系列数据。例如博客文章按照时间归档分组显示文章列表,或者需要按日期分组显示通知(例如知乎)的通知列表...
  • Python Django模板标签一、if、for标签# cat blog/views.pyfrom django.shortcuts import render_to_responsedef index(req): user = {'name':'loyu','age':23,'sex':'male'} book_list = ['python','java',...
  • Django 模板标签[转]

    2016-01-15 12:15:00
    Django 模板标签if/else 标签基本语法格式如下:{% if condition %} ... display{% endif %}或者:{% if condition1 %} ... display 1{% elif condiiton2 %} ... display 2{% else %} ... display 3{% endif %}根据...
  • Django模板标签中使用js变量

    千次阅读 2015-10-23 15:54:31
    Django模板标签是在服务器端解析并生成html数据返回的,如何将前端的js变量应用到模板标签里呢?确实没什么好办法,只能用一个占位符,然后在JavaScript里面替换。如下所示:<script> ... varuid=$(this).attr...
  • intensedebate_load模板标记需要一个站点帐号。 无论是把它作为intensedebate_acct ,或集INTENSEDEBATE_ACCT在您的设置: INTENSEDEBATE_ACCT = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 可以通过访问“页面( Fyre ...
  • Django模板标签中,{% for %}的主要作用就是用来迭代序列中的各个元素与Python中for语句的使用类似,可以迭代列表,元组,字典等 1.使用下面模板标签显示book_list变量中的书籍(如图所示): 2.同样,{% for %...
  • Django模板标签笔记

    2019-11-22 18:15:18
    if标签有闭合标签。就是 {% endif %} 。 if标签的判断运算符,就跟python中的判断运算符是一样的。 ==、!=、<、、>、>=、in、not in、is、is not 这些都可以使用。 还可以使用 elif 以及 else 等标签。 示例...
  • 在做web开发,要给用户提供一个页面,页面包括静态页面+数据,两者结合起来就是完整的可视化的页面,django模板系统支持这种功能,首先需要写一个静态页面(结构html,样式css,行为js)然后通过python的模板语法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,484
精华内容 993
关键字:

django模板标签