zoukankan      html  css  js  c++  java
  • 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文件'%}

        
  • 相关阅读:
    修改 MySQL 的 sql_mode 模式方法
    PHP 实现 Redis 连接池
    【转载】php解决高并发问题
    PHP 7 不适用函数:password_hash
    PDO 防止 SQL 注入示例
    记录一次 header 参数格式引发的错误
    Laravel 框架数据库查询构造器中 when 的易犯错误
    PHP 7.3.4 安装 Redis 4.0(Windows系统)
    汇编语言全梳理(精简版)
    Anaconda安装和使用
  • 原文地址:https://www.cnblogs.com/tulintao/p/11426710.html
Copyright © 2011-2022 走看看