美文网首页
django04模板使用

django04模板使用

作者: fly5 | 来源:发表于2018-09-29 16:52 被阅读0次

    一、模板

    • 组成
        -网页代码(html/css/js)
        -动态插入数据(逻辑处理,数据渲染,数据填充...)
    
    • 作用
        快速生成HTML
    
    • 步骤
        -加载
        -渲染
    

    二、模板使用

    • 变量
        -从视图函数中->模板->显示
        {{变量}}
    

    变量不存在,则插入空的字符串

    • 标签
        逻辑处理
        使用:{% tag %}
    
    • 标签if
        {% if 条件 %}
            代码区块
        {% else %}
            代码区块
        {% endif %}
        
        {% if 条件 %}
            代码区块
        {% elif 条件 %}
            代码区块
        {% endif   %}
        
        
        # 是否相等
        {% ifequal class1 class2 %}
            <p>同班</p>
        {% else %}
            <p>不同班</p>
        {% endifequal %}
        
        # 是否不相等
        {% ifnotequal class1 class2 %}
            <p>同班</p>
        {% else %}
            <p>不同班</p>
        {% endifnotequal %}
    
    • 标签for
        {% for 变量 in 列表 %}
            代码区域
        {% endfor %}
        
        # 循环的当前次数
        {{ forloop.counter}}(从1开始)
        {{ forloop.counter0}}(从0开始)
        # 倒序
        {{forloop.revcounter}}
        {{forloop.revcounter0}}
    
    • 单行注释
        {# 注释内容 #}
    

    模板中的注释,如果HTML注释 ''

    • 多行注释
        {% comment %}
            注释区块
        {% endcomment %}
    
    
    • 过滤器
        # 在变量显示之前修改它
        {{var|过滤器}}
        # 小写
        {{ name |lower }}
        # 大写
        {{ name|upper }}
        # 拼接
        {{ name |join:"#" }}
        # 默认值
        {{ xixi | default:"<>" }}
    
    • 标签include
        # 加载模板(带参数渲染)
        {% include '模板位置' 参数1 参数2 参数3 %}
        
        # 不带参数
        {% include "index_content.html" %}
        
        # 带参数
        {% include  "index_footer.html" with user="zyz"  namelist=names  %}
    

    三、反向解析

    • 基本语法
        {% url 'namaspace:name' p1 p2...... %}
        name:url添加一个别名(不同应用中,可能会出现重名)
        namespace:命名空间
    
    

    四、模板继承

    • 作用
        提高页面的代码复用(抽取共有部分,作为基类)
    
    
    • block标签
        -挖坑和填坑
        语法
            # 挖坑
            {% block  标签名  %}
            {% endblock 标签名 %}
            # 填坑
            {% block  标签名  %}
            {% endblock 标签名 %}
    
    • extends标签
        {% extends "base.html" %}
    
    

    五、HTML转义

        
            return render(request, "cart.html",context={"code": "<h1>购物车</h1>"})
            # html:
            -默认会转义:当成普通字符串
            {{code}}
            {{code|safe}}
            -关闭自动转义
            {% autoescase off %}
                {{code}}
            {% endautoescase %}
            
    

    相关文章

      网友评论

          本文标题:django04模板使用

          本文链接:https://www.haomeiwen.com/subject/akdboftx.html