2020.4.28 MVC和MVP

发布于 2020-04-28  170 次阅读


Table of Contents

  • 使用方法:
            * {% autoescape %}
         {% endautoescape %}
    
    
            ```
            < 转换为 &lt;
            > 转换为 &gt;
            '(单引号)转换为 &#39;
            "(双引号)转换为 &quot;
            & 转换为 &amp;
    
    
    
    *  文档地址:                                                 https://yiyibooks.cn/xx/Django_1.11.6/ref/templates/builtins.html
    
    ##### 4. 模板的继承
    
    *   **作用**:提高代码重用率,可以重写html内的标签,样式,js脚本,等等
    
    *   定义一个父模板
    
    *   定义子模板,继承父模板,重写block标签
    
    *   ```
        //父模板共用的地方:
        {% block block_name %}
        定义模板块,此模板块可以被子模板重新定义的同名块覆盖
        {% endblock block_name %}
    
        子模板重写的标签
        {% extends '父模板名称' %}
        子模板继承的标签
        {% block block_name %}
        名称一样则是重写父模板
        {% endblock block_name %}
        ```
    
    *   <span style="color:red;">模板继承时,服务器端的动态内容无法继承</span>
    
    • url反向解析

    • 在urls.py中传递 name=“绑定名”,可以方便修改urls链接,html中自动修改
    • 语法:
      • url(regex, views, kwargs=None, name="别名")
    • 模板中的语法
      • 在模板中: {% url '别名' ‘参数值1’ ‘参数值2’ %}
  • JavaScript 继承模式

    • 传统形式

      • 原型:prototype
        • 原型要写在构造函数前
      • 原型链: __proto__
      • 指定原型,(指定的是一个对象)生成原型链
      • Father.prototype = new Grand();
      • 父构造函数指向祖构造函数生成的对象
    • 借用构造函数(建议使用)

      • 使用:
        • 自己的方法,需要借用别人的方法(人家已经写过的方法)时候使用
      • 就是用call和apply来借用别人的方法
      • 必要要new出来的对象
      • 缺点:
        • 只能借用一个方法,原型还是自己的
        • 没构造一个对象,都要的多执行一些方法
    • 共享原型(标准继承模式)

      • 将父构造Father函数原型赋值给子Son构造函数
      • 先继承后使用
      • 缺点:
        • 子构造函数加属性的时候,父也具有了属性
    • 圣杯模式

      • 还是共享原型的一套
      • 不同点就是把父构造函数的和子构造函数分离
      • 新建一个构造函数,这个构造函数的prototype继承父构造函数prototype,再把对象(new 构造函数)赋值给子构造函数的prototype
      • constructor需要改一下,改为自身
      • 添加一个属性,继承自谁(默认是中间构造函数)
      • //继承函数
        function inherit(Target, Origin) {
        
            function F() {
            }
        
            F.prototype = Origin.prototype;
            Target.prototype = new F();
            Target.prototype.constructor = Target;
            Target.prototype.superClass = Father;
        }

    • *
  • 4.扩展延伸知识

    • python django中 url换为path

      • 不需要匹配url开头的/
      • 参数可以用尖括号\
      • 常用转化器
        • str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
        • int,匹配正整数,包含0。
        • slug,匹配字母、数字以及横杠、下划线组成的字符串。
        • uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
        • path,匹配任何非空字符串,包含了路径分隔符
      • https://kinegratii.github.io/2017/09/25/django2-url-path/
    • django修改自动重载文件

      • 尽量不要使用,还是手动重启一下
    • JavaScript原型书写位置的区别

      • 一定要在new之前写原型赋值
      • 如果没有new之前写,那么原型是默认的
    • JavaScript对象想要继承

      • 直接更改 __proto__属性
    • CSS中inherit

      • 继承属性
    • JavaScript 闭包

      • 匿名函数也存储了外部的存储上下文 [[scope]]
      • 外部定义参数,匿名函数拿到上下文,只有匿名函数能访问这个参数
      • 属性私有化
    • JavaScript上下文

      • AO对象
      • GO对象
    • python locals() 用法

      • 返回一个变量字典,字典内容是函数内定义的局部变量
    • Django2.2 Debug报错GBK

    • Django 标签使用的一些注意事项

      • 1.标签书写之间要有空格 ,多个空格可以,没有空格报错
      • 2.标签就是一个字符串,可以卸载双引号中
      • 3.标签都是成对出现

    5.知识内容个人梳理

    5.知识内容个人梳理

    6.今天都复习了之前的什么内容