日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python簡單實現(xiàn)了一個ORM

(推薦操作系統(tǒng):windows7系統(tǒng)、python 3.9.1、DELL G3電腦。)

創(chuàng)新互聯(lián)建站專注于廣漢網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供廣漢營銷型網(wǎng)站建設(shè),廣漢網(wǎng)站制作、廣漢網(wǎng)頁設(shè)計、廣漢網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造廣漢網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供廣漢網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

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

class Field(object):
    def __init__(self, name, column_type):
        self.name = name
        self.column_type = column_type

2、在Field的基礎(chǔ)上,進一步定義各種具體類型的Field,比如StringField,IntegerField等等:

class StringField(Field):
    def __init__(self, name, max_length):
        super(StringField, self).__init__(name, 'varchar(%d)' % max_length)
 
class IntegerField(Field):
    def __init__(self, name):
        super(IntegerField, self).__init__(name, 'int')

3、下一步,就是編寫最復(fù)雜的ModelMetaclass了:

class ModelMetaclass(type):
    def __new__(cls, name, bases, attrs):
        if name == 'Model':
            return type.__new__(cls, name, bases, attrs)
        print('Found model: %s' % name)
        mappings = dict()
        for k, v in attrs.items():
            if isinstance(v, Field):
                mappings[k] = v
        for k in mappings.keys():
            attrs.pop(k)
        attrs['__mappings__'] = mappings
        attrs['__table__'] = name
        return type.__new__(cls, name, bases, attrs)

4、創(chuàng)建User類,并調(diào)用save方法,保存:

class User(Model):
    id = IntegerField('id')
    name = StringField('username', max_length=48)
    email = StringField('email', max_length=128)
    password = StringField('password', max_length=24)
 
# 創(chuàng)建一個實例:
u = User(id=12345, name='xiaoming', email='xiaoming@xiaomi.com', password='test')
# 保存到數(shù)據(jù)庫:
u.save()

以上就是python簡單實現(xiàn)了一個orm,希望能對大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程


分享文章:創(chuàng)新互聯(lián)Python教程:python簡單實現(xiàn)了一個ORM
URL分享:http://m.5511xx.com/article/dhoppgh.html