zoukankan      html  css  js  c++  java
  • Django 模板层

    Django 模板层

    模板传值

    传函数名的时候 会自动加括号调用函数 将函数的返回值展示在html页面上
    django模板语法不支持函数或对象传参
    django模板语法在获取容器类型内部元素的值的时候 统一只采用 句点符(.),就是点取值

    过滤器

    过滤器类似于python的内置函数,用来把视图传入的变量值加以修饰后再显示, 具体语法如下

    {{ a|过滤器名字:b }}

    标签

    标签是为了在模板中完成一些特殊功能,语法为{% 标签名 %},一些标签还需要搭 配结束标签 {% endtag %}

    #1、遍历每一个元素:
    {% for person in person_list %}
     <p>{{ person.name }}</p>
    {% endfor %}
    #2、可以利用{% for obj in list reversed %}反向循环。
    
    #3、遍历一个字典:
    {% for key,val in dic.items %}
     <p>{{ key }}:{{ val }}</p>
    {% endfor %}
    #4、循环序号可以通过{{ forloop }}显示
    forloop.counter 当前循环的索引值(从1开始)
    forloop.counter0 当前循环的索引值(从0开始)
    forloop.revcounter 当前循环的倒序索引值(从1开始)
    forloop.revcounter0 当前循环的倒序索引值(从0开始)
    forloop.first 当前循环是第一次循环则返回True,否则返回False
    forloop.last 当前循环是最后一次循环则返回True,否则返回False
    forloop.parentloop 本层循环的外层循环
    #5、for标签可以带有一个可选的{% empty %} 从句,在变量person_list为空或者没有被找到时,则执行empty子
    句
    {% for person in person_list %}
     <p>{{ person.name }}</p>
    {% empty %}
     <p>sorry,no person here</p>
    {% endfor %}
    

    自定义过滤器,标签

    第一步:
    在app文件下创建一个templatetags(必须是这个文件名)
    第二步:
    在文件加下面创建一个任意名字的py文件
    第三步:
    在py文件中
    导入模块: from django.template import library
    register = library() -> register整个名字也是固定的
    第四步:
    开始自定义过滤器

    @register.filter(name="过滤器名字")
    def foo(a,b)   -> 必须两个参数,名字随便取
    	return a+b
    

    开始自定义标签

    @register.simple_tag(name="标签名")
    def foo(a,b,c,d) -> 随便几个参数
    	return f"{a}/{b}/{c}/{d}"
    

    模板的继承

    事先在html文件的代码中,也就是html模板中通过block划定区域

    {% block 区域名字 %}
    ...
    {% endblock %}
    

    子模版中的使用方式

    {% extends 'html文件名字' %}  // 就相当于导包
    
    {% block 区域名字 %}
    ...                -> 在这里面写代码
    {% endblock %}
    

    一个页面上 block块越多 页面的扩展性越高
    通常情况下 都应该有三片区域

    # css
    {% block css %}
    
    {% endblock %}
    # 内容              
    {% block content %}
        
    {% endblock %}
    #                 
    {% block js %}
        
    {% endblock %}
    

    子板中还可以通过{{ block.super }} 来继续使用母版的内容

    模板的导入

    当你写了一个特别好看的form表单 你想再多个页面上都使用这个form表单
    你就可以将你写的form表单当作模块的形式导入 导入过来之后 就可以直接展示

    {% include 'good_page.html' %}

  • 相关阅读:
    springboot日期格式转换
    通过nginx访问本地图片
    终止线程池对应某个线程
    下载文件并将下载成功的文件考入另一个目录
    centos7安装mysql5.7
    java dwg转svg
    PostgreSQL 实现按月按年,按日统计 分组统计
    oracle查询语句,根据中文的拼音排序
    java操作solr
    AMD,CMD,UMD 三种模块规范 写法格式
  • 原文地址:https://www.cnblogs.com/xiongchao0823/p/11733023.html
Copyright © 2011-2022 走看看