django中的模板渲染、模板继承、组件、插件

  1. 模板渲染

    • {{变量}},{%逻辑%}

    • locals(): 获取内部所有变量的值,并加工成一个以改变量名为key,数据为值的字典。

    • 过滤器:10个常用的

      • 获取元素长度:{{name_list|length}}
      • 默认值:{{value|default:"nonthing"}}
      • 将值格式化为一个'人类可读的'文件尺寸:{{value|filesizeformat}}
      • 切片:{{value|slice:"0:3"}}
      • 格式化:{{value|date:'Y-m-d H:M:S'}}
      • 字符截断:{{words|truncatechars:'9'}}
      • 单词截断:{{words|truncatewords:'3'}}
      • 移除:{{words|cut:'要移除的字符'}}
      • 拼接:{{name_list|join:'+'}}
      • 将字符串识别成标签:{{tag|safe}}
    • 标签

      • for标签
      {% for i in d1 %}
           {{ i}}
           <a>xxx</a>
         {%empty%}
           {{啥也没有}}
         {% endfor %}
         
       {% for k,v in dd.items %}
       		{{k}}---{{v}}
       {{endfor}}
       
       {{for loop.counter}}
       {{for loop.revcounter}}
       {{for loop.first}}
       {{for loop.last}}
       {{ for loop.parentloop }}
      
    • If 标签

      {% if 条件 %}
      。。。。
      {% elif %}
      ....
      {% else %}
      .....
      {% endif %}
      
    • with

      {% with 别名=xxxxx%}
      {%endwith%}
      
      {% with xxxx as 别名 %}
      {%endwith%}
      
    • {% csrf_token%} 认证防御机制,写到form表单里面,任意位置

  2. 模板继承

    {% extends 'muban.html'%}
    {% block content %}
    		要写的内容
    {% endblok %}
    
    模板中:
    {% block blockname %}
    		{{bloc.super}}
    {% endblock blockname%}
    
    
    
  3. 组件:一套完整功能的模块

    • 引用组件:{% include 'nav.html' %}
  4. 组件跟插件区别:组件是完整功能的模块,插件是针对某一个功能。里面可以含有多个插件。