1104 回顾

昨日回顾

exec

可以将字符串形式的python代码添加到全局/局部名称空间中.

元类

什么是元类

元类是类的类,type是元类的类

使用元类的目的

控制类的创建与调用

如何写元类

自定义元类

自定义一个类,继承type
type 内部触发了call,然后调用new创建一个空对象,将空对象以及括号内所有的参数一并传给__init
def __call__() ----  def __new()__()   --- def__init__

如何将元类引用到需要元类中

class类(metaclass = 元类名)

手动创建类

调用type

类名,基类父类,类的名称空间

4.优酷项目的数据层

ATM

	dict--json
	优点:
		跨平台,速度快

选课系统

	对象 -- bytes  --  pickle

​	优点:可以通过对象.属性的方式存值

优酷系统

	集成ATM + 选课系统的优点
	存值:
		对象 -- dict -- pymysql -- MySQL
	取值:
		MySQL  --  pymysql --  dict  --- 对象
	封装ORM:
	
		1.字段类型
        -Field
        name/column_type/primary_key/default
            -string
            -integer
            
        2.写models类
        -继承dict
        	可以接受任意个数的关键字参数
        	问题:字典无法通过队形啊.属性的方式存取值
        	解决: 在MOdels类中__setattr__,__getattr__
        		__setattr__(self,key,value)
        			self[key] = value
        		__getattr__(self,item)
        			return self.get(item)
        			
        3.写元类
        	- 继承type类
                1.获取一张表名
                2.判断数据表类中是否有一个唯一主键
                3.将所有字典类型都存入一个独立的mappings字典中
                	- 方便获取
                

ORM

增删改查
	- save:	insert into...
	- del:	delete  ...
	- update: update set ...	
	- selete: select from...

posted @ 2019-11-05 22:39  fwzzz  阅读(124)  评论(0编辑  收藏  举报