码迷,mamicode.com
首页 > 其他好文 > 详细

django模板

时间:2019-01-11 20:03:24      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:imp   empty   gif   count   语法   code   style   int   fir   

1 模版简介
DTL:django模板语言
核心:
变量 {{ }}
标签 {% %}

2 模版语法之变量
-变量渲染:{{变量}}
-变量深度查询:{{变量.索引/key值/方法}}

3 模版之过滤器
变量之过滤器(是个函数)
-语法:(后面只能传一个参数)
{{变量名|过滤器的名字:参数}}
-内置过滤器:
<p>{{ age|add:3 }}</p>
<p>{{ name|length }}</p>
<p>{{ bol|default:‘123‘ }}</p>
<p>{{ ll2|default:‘我是空的‘ }}</p>
<p>{{ file_size|filesizeformat }}</p>
<p>{{ ctime }}</p>
<p>{{ ctime|date:‘Y年m月‘ }}</p>
<p>{{ name|slice:‘2:4‘ }}</p>
<p>{{ name|truncatechars:6 }}</p>
<p>{{ name2|truncatewords:2}}</p>
<p>{{ href|safe }}</p>

4 模版之标签

语法:{% %}

技术分享图片
-foo是一个可迭代对象
            {% for a in foo %}

            {% endfor %}
        -forloop:counter,couter0,revcounter,revcouter0,first,last,parentloop:父循环的forloop对象
        -for--empty的使用
            {% for foo in ll2 %}
                {{ foo }}
            {% empty %}
                没有值啊
            {% endfor %}
        -if判断
            {% if ll2 %}
                ll2 有值
            {% elif ll %}
                ll有值
            {% else %}
                ll2 没有值
            {% endif %}
        -with重命名
            {% with dic.hobby.1 as a %}
            {#{% with a=dic.hobby.1 %}#}
                {{ a }}
                <p>aaaa</p>
                {{ a }}

            {% endwith %}
View Code

5 自定义过滤器

技术分享图片
1 确认app是否在settings中注册
        2 在app下创建templatetags的模块(名字固定)
        3 在模块下创建py文件(名字随意)--->在模板中{% load py文件名字%}
        4 在py文件中写过滤器
            from django.template import Library
            register = Library()
            #指定了name之后,模板上使用的时候,直接用name调用,如果没指定name,就用函数的名字
            # 过滤器最多有两个参数
            @register.filter(name=myadd)
            def my_add(a,b):
                print(a+b)
                return a+b
        5 模板中使用
            -1 {% load py文件名字%}
            -2 {{ 变量|myadd:1}}
View Code

6 自定义标签

技术分享图片
1 确认app是否在settings中注册
        2 在app下创建templatetags的模块(名字固定)
        3 在模块下创建py文件(名字随意)--->在模板中{% load py文件名字%}
        4 在py文件中写过滤器
            from django.template import Library
            register = Library()
            #指定了name之后,模板上使用的时候,直接用name调用,如果没指定name,就用函数的名字
            # 过滤器最多有两个参数
            @register.simple_tag(name=mytag)
            def my_tag(a,b,c):
                return a+b+c
        5 模板中使用
            -1 {% load py文件名字%}
            -2 {% mytag 参数1 参数2 参数3%}
View Code

7 标签和过滤器的区别:
1 标签可以传多个参数,过滤器最多只能传2个
2 使用过滤器{{ }} 标签使用:{% %}
3 ****重点:过滤器可以放在if判断后,标签不能放在if判断后

 

django模板

标签:imp   empty   gif   count   语法   code   style   int   fir   

原文地址:https://www.cnblogs.com/zhanggq/p/10256797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!