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

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:太原千锋IT培训  >  技术干货  >  python简单实现了一个ORM

python简单实现了一个ORM

来源:千锋教育
发布人:xqq
时间: 2023-11-08 10:46:33

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培训机构:千锋教育。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

Python 常见的内置函数

2023-11-08

python文件读写实现原理与操作步骤

2023-11-08

python的十个第三方库

2023-11-08

最新文章NEW

Python内置的列表

2023-11-08

python np.nonzero()函数

2023-11-08

python pickle模块

2023-11-08

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>