zoukankan      html  css  js  c++  java
  • Django项目总结:Template

    【模板Template】

    --  在Django框架中,模板是可以帮助开发者快速生成呈现给用户页面的工具

    -- 模板的设计方式实现了我们MVT中VT的解耦

    -- VT有着N:M的关系,一个V可以调用任意T,一个T可以供任意V使用

    -- 模板处理分为两个过程:加载和渲染

    -- 模板主要有两个部分

      -- HTML静态代码

      -- 动态插入的代码段(挖坑,填坑)

    -- 模板中的动态代码段除了做基本的静态填充

      --还可以实现一些基本的运算,转换和逻辑

    -- 模板中的变量

      -- 视图传递给模板的数据

      -- 遵守标识符规则

      -- 语法{{  var }}

      -- 如果变量不存在,则插入空字符串

     

    点语法

    -- 调用属性或方法

      -- 弊端:调用方法时,不能传递参数

    -- 字典查询

    -- 索引

    模板中的标签

    -- 语法 {%  tag  %}

    -- 作用

      -- 加载外部传入的变量

      -- 在输出中创建文本

      -- 控制循环或逻辑

    -- if

    -- for

      -- 当列表为空或不存在时,执行empty之后的语句

    -- forloop

      -- {{ forloop.counter }} 表示当前是第几次循环,从1数数

      -- {{ forloop.counter0}} 表示当前是第几次循环,从0数数

      -- {{ forloop.revcounter}} 表示当前是第几次循环倒着数数,到1停

      -- {{ forloop.revcounter0}} 表示当前第几次循环,倒着数,到0停

      -- {{ forloop.first }} 是否是第一个  布尔值

      -- {{ forloop.last }} 是否是最后一个 布尔值

    复合使用

    -- 注释

      -- 单行注释

        {#  被注释掉的内容  #}

      -- 多行注释

        {% comment %}

          内容

        {% endcomment %}

     

    -- 乘除  {% widthratio 数  分母  分子  %}

    -- 整除  {% if num|divisibleby:2 %}

      -- |

        -- Linux:管道符号,前面的输出做为后面的输入

        -- 模板里:过滤器,作用同管道符号,在变量显示前修改

          -- {{ var|过滤器 }}

            -- 加add  {{ p.page | add : 5 }}

            -- 减 {{ p.page | add : -5}}

            -- 大写 {{ p.pname|upper }}

            -- 小写 {{ p.pname|lower }}

    -- ifequal 如果相等

      {%  ifequal  value1 value2 %}

        语句

      {% endifequal %}

    -- ifnotequal 如果不相等

    -- url:   反向解析

      {% url 'namespace:name' p1 p2 %}

    -- csrf_token 用于跨站请求伪造保护的

      {% csrf_token %}

     

    【HTML转义】

    -- 将接收到的数据当成普通字符串处理还是当成HTML代码来渲染的一个问题

    -- 渲染成html:{{ code|safe}}

    code中若注入js语句,safe后会变得不安全

    另一种渲染方式

    结构标签

    -- block

      -- 块

      -- 用来规划我们的布局(挖坑)

      -- 首次出现,代表规划

      -- 第二次出现,代表填充之前的规划

      -- 第三次出现,填充之前的规划,默认覆盖

        -- 若不想覆盖,可以添加 {{ block.super }}

        -- 这样可以实现增量操作

    -- extends

      -- 继承

      -- 可以获取父类模板中的所有结构

    -- block + extends

      -- 化整为零,效率高

    -- include

      -- 包含,可以将页面作为一部份,嵌入到其它页面中

    -- include + block

      -- 由零聚一,效率低

    -- 如果我们继承自一个父模板,子模版自己直接重写页面结构是不生效的

     

    static 静态资源

    -- 创建静态文件夹

    -- css,js 通常写在 static 中

    -- setting 中注册

    -- 动静分离

    -- 在模板中使用

      -- 先加载静态资源  {% load static %}

      -- 使用 {% static 'xxx' %}  xxx相对路径

    -- 坑点

      -- 仅在debug模式可以使用

      -- 以后需要自己单独处理

     

     

    从现在开始,种下梦想中的参天大树
  • 相关阅读:
    写程序一定要养成良好习惯程序编码规范
    今天用GRID感觉它严重缺少灵活性
    REPEATER 嵌套
    DATAGRID的困惑。。。
    VB常用函数。。。。
    子父表,就是这么简单。。。。。
    今天解决了DataGrid无刷新全选删除问题。
    看来我还没完全懂DATAGRID。。。
    indexOf 和 lastIndexOf 使用
    javascript 要注意的事项
  • 原文地址:https://www.cnblogs.com/dc2019/p/13308302.html
Copyright © 2011-2022 走看看