Django--模版层

模版层(templates):

  后端朝前端进行传递数据的方式:  

def index(request):
    # 第一种
    n = 6969
    # return render(request, 'index.html', {'n': n})
    # 第二种
    return render(request, 'index.html', locals())  # 将当前所在的名称空间中的名字全部传递给前端页面

 

    后端传函数名到前端,会自动加括号调用,但是不支持传参,

    后端传对象到前端,就相当于打印了这个对象

    前端获取后端传过来的容器类型的内部元素,统一采用句点符,数字对应的就是数据的索引

<p>{{ t.1 }}</p>

 

    模版语法的注释不会展示到前端页面:{#注释的内容#}

    会展示到前端页面的注释:<!--我是原生的html注释-->

    调用python自带的方法,可以调用不需要传参的一些内置方法,

  过滤器: 

    <p>前端统计字符串的长度:{{ t|length }}</p>

    <p>前端获取数据如果就返回default后面的值如果有值就返回{{ t|default:"这是个空!!!" }}</p>

    <p>将数字格式化成标识文件大小的单位{{ t|filesizeformat}}</p>

 

    <p>格式化时间不需要加百分号{{ t|date:'Y-m-d'}}</p>

    <p>字符串切片{{ t|slice:"0:8"}}</p>

    <p>截取固定长度的字符串 三个点也算{{ t|truncatechars:'10' }}</p>

    <p>将字符串中的内容渲染成标签形式的内容,取消转义{{ t|safe}}</p>

  标签:

    前后端取消转义:

      前端:

        |safe

      后端:

from django.utils.safestring import mark_safe

xxx = mark_safe('<h1>index</h1>')

 

    

{% for foo in t %} 
    {% if forloop.first %}
        <p>这个是第一次</p>
    {% elif forloop.last %}
        <p>这个是最后一次</p>
    {% else %}
        <p>这个只是中间的值!!!</p>
    {% endif %}
    {% empty %}
        <p>我压根就没有接收到数据啊!!!</p>
{% endfor %}

    

 

 

    empty:当你的for循环对象为空的时候会自动走empty代码块中的内容

  自定义标签、过滤器,inclusion_tag:

    必须干的三件事:

      1、必须在应用名下新建一个名字,就叫tempalte(必须叫这个名字)

      2、在该新建的文件夹内部新建一个任意名称的py文件

      3、在该py文件中需要固定写下面两句代码:

         from django import template

         register = template.Library()

    自定义标签:

      

  模版的继承与导入:

    首先需要在被继承的模版中划分多个区域

    {% block 给区域起的别名 %}

    {% endblock %}
    通常一个模版中至少有三块content、css、js

    子版继承模版:

      现继承模版的所有内容

      {% extends 'home.html' %}

      然后根据block的名字修改指定区域的内容

        {% block content %}
        <form action="">
        <p>username<input type="text" class="form-control"></p>
        <p>password<input type="text" class="form-control"></p>
      <input type="submit" class="btn btn-success">
        </form>
        {% endblock %}
    模版的导入:
      将一段html代码以模块的方式导入到另一个html展示
      
      {% include '想导入的一段html文件'%}

    

 

posted @ 2019-08-30 08:26  tulintao  阅读(153)  评论(0编辑  收藏  举报