元类、实现ORM

元类

一、 类也是对象


二、使用type创建类

   type(类名,由父类名称组成的元组(针对继承情况下,可以为空),包含属性的字典(key和value)

元类创建class类,class创建实例对象(元类一种特殊的类)

type 是动态创建类
def upper_attr(class_name, class_parents,class_attr):

	# 遍历属性字典,把不是__开头的属性名字变为大写
	new_attr = {}
	for name,value in class_attr.items():
		if not name.startswith("__"):
			new_attr[name.upper()] = value

	# 调用 type 来创建一个类
	return type(class_name, class_parents,new_attr)


class Foo(object, metaclass=upper_attr):  #选择使用哪个类,不用type执行,默认type创建
	bar = 'bip'


print(hasattr(Foo, 'bar'))
print(hasattr(Foo, 'BAR'))

f = Foo()
print(f.BAR)

三、元类实现ORM

1)ORM是什么

  1. 基本概念
    ORM是python的编程语言后端web框架Django的核心思想,Object Relational Mapping, 即对象-关系映射。一句话说,创建一个实例对象,用创建它的类名当做数据表名,用创建它的类属性对应数据表的字段,当这个实例对象操作时,能够对应MySQL语句

    u.sa
    ve() 相当于执行
  2. 总结
    类名对应着表名,类中相关的信息,对应着每个字段
    创建这个类的目的是通过这样一个类,将类转化为执行SQL语句,
    ORM:不用主动手写SQL语句,定义一个类,创建实例对象,调用某个方法,实现这个SQL语句执行
    创建一个类,就像创建一个表,这是Django框架最核心的东西

猜你喜欢

转载自blog.csdn.net/weixin_41603646/article/details/84870233