日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python簡單實(shí)現(xiàn)了一個(gè)ORM

python簡單實(shí)現(xiàn)了一個(gè)ORM

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-11-13 20:21:17 1699878077

python簡單實(shí)現(xiàn)了一個(gè)ORM

(推薦操作系統(tǒng):windows7系統(tǒng)、Python3.9.1、DELLG3電腦。)

1、定義Field類,它負(fù)責(zé)保存數(shù)據(jù)庫表的字段名和字段的類型:

classField(object):

def__init__(self,name,column_type):

self.name=name

self.column_type=column_type

2、在Field的基礎(chǔ)上,進(jìn)一步定義各種具體類型的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、下一步,就是編寫最復(fù)雜的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、創(chuàng)建User類,并調(diào)用save方法,保存:

classUser(Model):

id=IntegerField('id')

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

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

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

#創(chuàng)建一個(gè)實(shí)例:

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

#保存到數(shù)據(jù)庫:

u.save()

以上就是python簡單實(shí)現(xiàn)了一個(gè)ORM,希望能對(duì)大家有所幫助。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
主站蜘蛛池模板: 阿拉善左旗| 特克斯县| 屏东县| 鲜城| 贵德县| 安龙县| 衡东县| 兴义市| 淅川县| 大冶市| 四子王旗| 黄陵县| 泸西县| 醴陵市| 务川| 抚顺县| 海兴县| 修文县| 嘉峪关市| 石城县| 宜丰县| 奈曼旗| 万山特区| 岳西县| 长沙市| 武功县| 府谷县| 遵义市| 郎溪县| 长宁区| 井陉县| 大足县| 通城县| 临洮县| 胶南市| 马山县| 江城| 大余县| 淳安县| 社旗县| 乌拉特后旗|