zoukankan      html  css  js  c++  java
  • Python之路【第三十三篇】:django继承

    一 模版

    一模版的组成

       HTML代码+逻辑控制代码

    二 逻辑控制代码的组成

       1  变量(使用双大括号来引用变量)

       {{var_name}}

       2  标签(tag)的使用(使用大括号和百分比的组合来表示使用tag)

       {%load staticfiles%}

       3 过滤器(filter)的使用

         {{ship_date|date:"Fj,Y"}},ship_date变量传给data过滤器,date过滤器通过使用"FJ,Y"这几个参数来格式化日期数据。"|"代表类似Unix命令中的管道操作。

    三 常用标签

       1  {%if%} 的使用

          可以使用你的and,or,not来组织的逻辑。但不允许and和or同时出现在条件语句中。新版本中已经支持了                 {%elif%} 这样的用法。

        2  {% for %}的使用

           用来循环一个序列, 还可以使用reserser关键字来进行倒序遍历,一般可以先用if语句判断序列是否为空,再进行遍历;还可以使用empty关键字来进行为空时的跳转

            

     3  {%csrf_token%}

         用于生成csrf_token的标签,用于防治跨站攻击验证。

         注意如果你在view的index里用的是render_to_response方法,此时标签由于没有上下文的关系所以没有效果,需要:

         

       或者直接使用render。

       其实,这里是会生成一个input标签,和其他表单标签一起提交给后台的。

    4   {% load %}: 加载标签库

    5   {% url %}:  引用路由配置的地址

         

    6   {% with %}:用更简单的变量名替代复杂的变量名

         

    7   {% verbatim %}: 禁止render  

    {% verbatim %}
    {{ hello }}
    {% endverbatim %}

    四 常用过滤器

       1  add          :   给变量加上相应的值

       2  addslashes:    给变量中的引号前加上斜线

       3  capfirst     :    首字母大写

       4  cut           :   从字符串中移除指定的字符

       5  date         :   格式化日期字符串

       6  default     :   如果值是False,就替换成设置的默认值,否则就是用本来的值

       7  default_if_none:如果值是None,就替换成设置的默认值,否则就使用本来的值

      

    五 模版的包含和继承

       包含:{% include %} 允许在模版中包含其他模版的内容。

    标签的参数可以是:模版名称,变量,字符串

          {% include 'nav.html' %}

          {% include 'app/nav.html'%}

          {% include template_name %}

       继承:本质上说,模版继承就是先构造一个基础框架模版,而后在其子模版中对它所包含站点共用部分和定义进行重载。

            1    {% block %}

                 定义块

            2    {% extends %}

                 继承父模版

      

      注意:

            1 包含和继承可以把一些共用的网页模块独立出来,以减少代码的冗余。

            2  如果在模块里使用{% extends %}d的话,这个标签必须在所有模版标签的最前面,否则模版继承不工作。

            3  通常尽可能模版里的{% block %}越多越好,子模版不必定义所有的父block

            4  如果你需要父模版的块内容,{{block.super}}变量可以帮你完成工作,当你需要为父块添加内容而不是取代它的时候这就很有用。

            5  不能在同一模版(无论是父模版还是子模版)里定义多个同名{% block %} ,因为块标签同时在两个地方工作,不仅在子模版中,而且在父模版中也填充内容,如果子模版有两个同名的标签,父模版将不能决定使用哪一个块内容来使用。

  • 相关阅读:
    UVa532 Dungeon Master 三维迷宫
    6.4.2 走迷宫
    UVA 439 Knight Moves
    UVa784 Maze Exploration
    UVa657 The die is cast
    UVa572 Oil Deposits DFS求连通块
    UVa10562 Undraw the Trees
    UVa839 Not so Mobile
    327
    UVa699 The Falling Leaves
  • 原文地址:https://www.cnblogs.com/hackerer/p/12340155.html
Copyright © 2011-2022 走看看