django之模板的使用templates

环境配置
    system w10/ubuntu18.0.4
    python 3.7.4
    django 3.0.3
模板的定义
    变量
        {{var}} 输出计算变量的值,变量不存在插入的时空字符串 
        对象的传递方式{{对象名.属性}},可以调用没有参数的函数方法
        变量的分析步骤:
            1.字典
            2.属性方法
            3.索引
    标签
        {% tag %}
        作用:控制逻辑和循环,输出创建文本
        if  {%if 表达式%}
                语句
            {%endif%}
        if else    
            {%if 表达式%}
                语句
            {%else%}
                语句
            {%endif%}
        if elif else
            {%if 表达式%}
                语句
            {%elif 表达式%}
                语句    
            {%else%}#可有可无
                语句
            {%endif%}
    
        for
            forloop.counter
            当前循环的索引值(从1开始)
            forloop.counter0
            当前循环的索引值(从0开始)
            forloop.revcounter
            当前循环的倒序索引值(到1结束)
            forloop.revcounter0
            当前循环的倒序索引值(到0结束)
            forloop.first
            当前循环是不是第一次循环(布尔值)
            forloop.last
            当前循环是不是最后一次循环(布尔值)
            forloop.parentloop
            本层循环的外层循环
            {% for 变量 in 列表 %}
                语句
            {% empty %}#列表为空的时候执行
                语句
            {% endfor %}
            
            {{forloop.counter}}#表示第几次的循环
        
        comment
            {% comment %}
                注释多行
            {% endcomment %}
            
        ifequal  ifnotequal  判断是否相等
            {% ifequal 值1 值2 %}
                语句
            {% endifequal %}
    
        include   加载模板,用参数渲染
            {% include ’模板目录‘ 参数一 参数二  参数三 %} 
            
        url  反向解析链接
            {% url ’namespace:name‘ 参数一 参数二 %}
            作用:有时候我们可能会改变原有的链接路径,如果我们的网页内部使用的是硬链接就需要修改大量的链接
            ,伪类避免在实际工作中减少不必要的错误,一般会在urls的path路劲中添加namesapce属性和name属性,
            在project的urls中添加
            path('lql/', include('myapp.urls', namespace= 'myapp'))
            在myapp的urls文件中添加
            app_name = ’myapp‘
            # 前面不加/表示在当前路径下添加路径
            path('good/', views.good, name= 'good'),
            这样我们可以在需要链接的地方加入
            <a href="{% url 'myapp:good' 1000 %}">点击跳转good</a>

            
        
        csrf_token  跨站虚假请求保护,防止别人恶意攻击,一般用于表单。
            {% csrf_token %}
        
        block extends 用于模板的继承  查看base.html 和 home.html的页面
        block 为在父类的模板中预留空间插入子模版的独特内容,使用实在子模板中。
        {% block 标签名 %}
            内容
        {% endblock %}
        extend 模板的继承,写在模板的第一行{% extend ‘模板路径’ %},不需要再次申明文档。
        模板的使用
            创建base基础模板
            <!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <title>base</title>
                <style>
                    header,footer{
                        width: 100%;
                        height: 15%;
                        background: blueviolet;
            
                    }
                </style>
            </head>
            <body>
                <header><h1>base html</h1></header>
                    <div id="main">
                    {% block base %}
            
                    {% endblock base %}
                    </div>
                <footer><h1>base footer</h1></footer>
            </body>
            </html>
        创建home模板
            {% extends 'myapp/base.html' %}

                {% block base%}
                    <ul>
                        {% for i in demo %}
                        <li>
                            I am {{ i }}---{{ forloop.counter }}
                        </li>
                        {% endfor %}
                    </ul>
                {% endblock %}
        
        
        autoescape 
        {% autoescape on|off%} 
         语句
        {% endautoescape %}
                用于html转义,主要用于输入html标签时使用转义为html元素
                例如视图端输入一个<h1>today is a nice day !</h1>,他可能被直接以字符串形式输出,并不会以
            页面的形式进行解析并输出。这时可以用到我们使用的{% autoescape on|off%},为on时开启html转义,为off时关闭html转义 ,结束时使用{% endautoescape %}一般多用于多行转义
        
        
        
    过滤器
        作用:在变量显示前修改
        {{ var| filter}}
        
        {{ var|escape }}  不转义html类型的数据,直接以字符串的形式加载到页面
        
        safe 为单行转义html的    {{var|safe}}
        
        lower upper  大小写
        {{列表|join:‘连接符’}}将列表里的元素连接成一个字符窜
        
        {{ var|default:"str" }} 当变量为空或者没有值或者为否,显示str,变量有值显示变量的值
        
        {{ value|date:"Y-m-d H:i:s"}}   #显示时间格式 年-月-日 时:分:秒
        
        add "加"给变量加参数,字符串默认尝试转int类型,转不了就拼接
        {{ value|add:"2" }}
        value是数字4,则输出结果为6
        
        {{ value|add:"hello" }}
        value是数字666,则输出结果为666hello
        
        {{ first|add:second }}
        如果first是 [1,.2,3] ,second是 [4,5,6] ,那输出结果是 [1,2,3,4,5,6] 
        
        title 标题
        {{ value|title }}
       
        ljust 左对齐
        "{{ value|ljust:"10" }}"
        
        rjust 右对齐
        "{{ value|rjust:"10" }}"
        
        center 居中
        "{{ value|center:"15" }}"
        
        length 长度
        {{ value|length }}
        返回value的长度,如 value=['a', 'b', 'c', 'd']的话,就显示4.
        
        slice 切片
        {{value|slice:"2:-1"}}
        
        first 取第一个元素
        {{ value|first }}
        
        last 取最后一个元素 
        {{ value|last }}
        
        cut 移除value中所有的与给出的变量相同的字符串
        如果value为'i love you',那么将输出'iloveyou'.
        {{ value|cut:' ' }}
        
        truncatechars 按照字符截断 ...也计数
        如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾
        #参数:截断的字符数
        {{ value|truncatechars:9}}
        truncatewords 按照单词进行截断, 只针对英文(...)不计数,中文按字计算
        
        filesizeformat 文件大小人性化显示
        将值格式化为一个 “人类可读的” 文件尺寸 (例如 '13 KB', '4.1 MB', '102 bytes', 等等)例如:
        {{ value|filesizeformat }}
        如果 value 是 123456789,输出将会是 117.7 MB
        
        # num/1*5除法运算
        {% widthratio num 1 5 %}
        
        单行注释
        {#<h1>today is a nice day</h1>#}
    

    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python-newer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值