django04模板使用

一、模板

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

二、模板使用

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

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

  • 标签
    逻辑处理
    使用:{% tag %}
  • 标签if
    {% if 条件 %}
        代码区块
    {% else %}
        代码区块
    {% endif %}
    
    {% if 条件 %}
        代码区块
    {% elif 条件 %}
        代码区块
    {% endif   %}
    
    
    # 是否相等
    {% ifequal class1 class2 %}
        

同班

{% else %}

不同班

{% endifequal %} # 是否不相等 {% ifnotequal class1 class2 %}

同班

{% else %}

不同班

{% 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": "

购物车

"}) # html: -默认会转义:当成普通字符串 {{code}} {{code|safe}} -关闭自动转义 {% autoescase off %} {{code}} {% endautoescase %}

你可能感兴趣的:(django04模板使用)