千锋教育-做有情怀、有良心、有品质的职业教育机构

python简单实现了一个ORM

来源:千锋教育
发布时间:2023-11-13 21:14:18
分享

python简单实现了一个ORM

(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)

1、定义Field类,它负责保存数据库表的字段名和字段的类型:

classField(object):

def__init__(self,name,column_type):

self.name=name

self.column_type=column_type

2、在Field的基础上,进一步定义各种具体类型的Field,比如StringField,IntegerField等等:

classStringField(Field):

def__init__(self,name,max_length):

super(StringField,self).__init__(name,'varchar(%d)'%max_length)

classIntegerField(Field):

def__init__(self,name):

super(IntegerField,self).__init__(name,'int')

3、下一步,就是编写最复杂的ModelMetaclass了:

classModelMetaclass(type):

def__new__(cls,name,bases,attrs):

ifname=='Model':

returntype.__new__(cls,name,bases,attrs)

print('Foundmodel:%s'%name)

mappings=dict()

fork,vinattrs.items():

ifisinstance(v,Field):

mappings[k]=v

forkinmappings.keys():

attrs.pop(k)

attrs['__mappings__']=mappings

attrs['__table__']=name

returntype.__new__(cls,name,bases,attrs)

4、创建User类,并调用save方法,保存:

classUser(Model):

id=IntegerField('id')

name=StringField('username',max_length=48)

email=StringField('email',max_length=128)

password=StringField('password',max_length=24)

#创建一个实例:

u=User(id=12345,name='xiaoming',email='xiaoming@xiaomi.com',password='test')

#保存到数据库:

u.save()

以上就是python简单实现了一个ORM,希望能对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python画笔的属性有哪些? python画笔的属性有哪些?画笔有颜色、画线的宽度等属性。1、turtle.pensize():设置画笔的宽度;2、turtle.pencolor():没有参数传入返回当前画笔颜色;传入参数设置画笔
  • python常用的画布方法 python常用的画布方法画布是turtle为我们展开绘画区域,可以设定其大小和初始位置。常用的画布方法有两个:screensize()和setup()。1.turtle.screensize(can
  • python代码的风格是什么? python代码的风格是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。每一种计算机语言都有其特有的代码风格。如下:1、空格。如下所示的等号两边空格可加可不加,
  • python函数文档怎么写? python函数文档怎么写?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。函数的文档的作用是对当前函数提供使用相关的参考信息。1、文档的写法:在函数内部开始的第一行
  • python收集参数如何解包 python收集参数如何解包本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明把参数放入List或者字典中,直接把List/dict中的值放入收集参数中。同理,
  • python收集参数的调用顺序 python收集参数的调用顺序本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明收集参数,关键字参数,普通参数可以混合使用使用规则就是普通参数和关键字参数优先定