Django--模版层

Posted tulintao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件‘%

    

 

以上是关于Django--模版层的主要内容,如果未能解决你的问题,请参考以下文章

Django--模版层

Django之模板层-继承

7.Django的模版层

DJANGO入门系列之(模板层)

Django之模板层

Django的模版引擎与模版使用