• 生成器,装饰器之类


    内容回顾
    1、可迭代对象、迭代器、生成器、装饰器有什么区别?
      可迭代对象:内部实现了__iter__方法,是一个迭代器
      迭代器:内部实现了__iter__和__next__方法,可以进行for循环
      生成器:函数内部有yield的就是生成器,生成器也有一个__next__方法,它的本质是一个迭代器。
      生成器有两大功能:1、生成 2、迭代
      装饰器:在函数执行之前或者函数执行之后要扩展的功能,装饰器是用闭包实现的
    2、面向对象的方法?面向对象有三种方法:
      实例方法:def func(self):pass 用对象去调用方法
      类方法:cls是当前操作的类名
          @classmethod
          def func(cls):pass
      静态方法:
          @staticmethod
          def func():pass
      类方法和静态方法的区别:
        类方法:类方法传一个cls参数
        静态方法:静态方法不用传参数
        相同点:都可以用用类去调用方法
    3、类里面的字段有两种:
        静态字段
        动态字段
        class A:
          s ="aaa" 静态字段
          def __init__(self):
            self.name = name 对象字段
    4、属性:

    复制代码
    @property
    def func(self):
      pass
    @fee.setter 
    def fee(self):
      pass
    

    @fee.deltter
    def fee(self):
      
    pass
    吧一个方法当做属性来调用
    因为属性不能被修改,可以用@fee.setter

    复制代码

    5、提高查询数据库性能相关的有什么方式?
      加索引的方式:索引就是加速查询 :通过不断的缩小数据的范围筛选出最终想要的结果
      索引又分为几大类?
      索引分类
        1.普通索引index :加速查找
        2.唯一索引
          主键索引:primary key :加速查找+约束(不为空且唯一)
          唯一索引:unique:加速查找+约束 (唯一)
        3.联合索引
          -primary key(id,name):联合主键索引
          -unique(id,name):联合唯一索引
          -index(id,name):联合普通索引
        4.全文索引fulltext :用于搜索很长一篇文章的时候,效果最好。
        5.空间索引spatial :了解就好,几乎不用
    6、如何命中索引?
      创建索引,未命中
      命中:相当于精确查询。。。in,like就不命中
      排序条件为索引,则select字段必须也是索引字段,否则无法命中

    6、django的生命周期
      请求先到wsgi---中间件---如果验证通过就走到路由系统----视图函数(从数据库中取到数据,在模板中渲染)
    7、中间件做过什么?
      用户登录
      权限管理
      crsf
      session
    8、在路由系统url上一定要记得加上起始终止符
    9、视图:request请求都拿到了些什么?
      request.POST POST里面可能拿不到数据,但是在body中一定会拿到数据
      request.body
      request.GET
      request.path_info
      request.method
      request.session
      request.cookies
      ....
    10、Form验证
      创建规则:
      类:
        字段:    

            required=True,
            min_length=3,
            max_length=18,
            error_messages={
                'required': '密码不能为空',
                'min_length': '密码长度不能小于3',
                'max_length': '密码长度不能大于18',
                'invalid': '密码格式错误',
            },

          validators=[RegexValidator('d+','只能是数字') ]
    11、数据库操作
      13个API操作
        all,filter,get,values,values_list,fast,last,distinct,reverse,include,order_by, exist,count
        另加2个:only、refer
        FK ManyToMany
    12、模板
      自定义过滤器和标签
      1、常见一个templatetags文件夹
      2、在该文件夹中随便创建一个py文件
      3、在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py
      3、{% load my_tags %} 
      自定义过滤器函数的参数只能两个,可以进行逻辑判断
      自定义标签无参数限制,不能进行逻辑判断

    13. Session和Cookie是什么?什么区别和关系?Session原理?
    由于http无状态,当请求进来的时候不会保存状态,当每次访问的时候就不知道是谁进来了,这就引出了cookie
    cookie的原理:
      服务器产生内容,浏览器收到请求后保存在浏览器;
      当浏览器再次访问时,浏览器会自动带上cookie,
      这样服务器就能通过cookie的内容来判断这个是“谁”了。
    session 的原理:
      session会保存在服务器,这样比较安全
    总结而言:cookie弥补了http无状态的不足,让服务器知道来的人是“谁”;
           但是cookie以文本的形式保存在本地,自身安全性较差;
         所以我们就通过cookie识别不同的用户,对应的在session里保存私密的信息以及超过4096字节的文本。

    另外,上述所说的cookie和session其实是共通性的东西,不限于语言和框架
    14. 什么是模板继承,好处是什么?

      模板继承{% extends  "base.html" %}

       好处:缩减代码


  • 相关阅读:
    Linux c++ time different
    数据库初始化以及制作为Windows服务
    数据库无法注册服务
    JS中String转int
    数据库服务注册(使用命令注册):解决my.ini配置文件不存在的问题
    数据库启动丢失MSVCP120.dll
    jQuery
    BOM和DOM
    用yield实现python协程
    深入理解python中的yield关键字
  • 原文地址:https://www.cnblogs.com/maaosheng/p/11621476.html
Copyright © 2020-2023  润新知