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 %} ,因为块标签同时在两个地方工作,不仅在子模版中,而且在父模版中也填充内容,如果子模版有两个同名的标签,父模版将不能决定使用哪一个块内容来使用。

  • 相关阅读:
    HDU 4370 0 or 1 (最短路)
    POJ 2449 Remmarguts' Date (K短路 A*算法)
    HDU 5984 Pocky ( 2016 CCPC 青岛 C)
    [leetcode-733-Flood Fill]
    [leetcode-746-Min Cost Climbing Stairs]
    OpenCV学习5-----使用Mat合并多张图像
    人体姿态的相似性评价基于OpenCV实现最近邻分类KNN K-Nearest Neighbors
    OpenCV学习4-----K-Nearest Neighbors(KNN)demo
    [leetcode-728-Self Dividing Numbers]
    [leetcode-724-Find Pivot Index]
  • 原文地址:https://www.cnblogs.com/hackerer/p/12340155.html
Copyright © 2011-2022 走看看