Esempio n. 1
0
 def get(cls, pk):##   根据 关键字 查询这条记录
     sql = 'select * from %s where %s=%s' % (cls.__table__, cls.__primary_key__,pk)
     db = MySQLApp().getInstance()
     db.query(sql)
     result = db.fetchOneRow()
     db.close()
     return cls(**result) if result else None  ## 他的返回值是个什么????  返回的是一个类带有及个参数
Esempio n. 2
0
    def save(self):
        fields = []
        params = []  ##参考 注册 处理 程序 newUser

        for k, v in self.__mappings__.iteritems():
            if v.canset == False or getattr(
                    self, k, None) == None:  ##如果不能被赋值,或则在表中没有这个字段,类中没有这个属性
                continue
            fields.append(v.name)  ##意思是:为属性集合增加元素,增加的元素是v.name,v=values值
            vu = getattr(self, k, None)
            if isinstance(vu, unicode):
                vu = vu.encode('utf-8')
            if isinstance(vu, str) == False:
                vu = str(vu)
            params.append("'" + vu + "'")  ##  意思是:为参数集合添加元素,  增加的元素是 vu
        sql = 'insert into %s (%s) values (%s)' % (
            self.__table__, ','.join(fields), ','.join(params))
        print('SQL: %s' % sql)
        print('ARGS: %s' % str(params))
        db = MySQLApp().getInstance()
        pk = db.insert(sql)
        db.close()

        print(pk)

        return pk  ##返回一个主键,也就是一个数字
Esempio n. 3
0
 def delete(self,pk):
     sql = 'delete from %s where %s=%s' % (self.__table__, self.__primary_key__,pk)
     db = MySQLApp().getInstance()
     result = db.update(sql)  ##删除操作也是更新 主要是游标 _cur
     db.close()
     print(result)
     return  result
Esempio n. 4
0
    def initDB(self, tablename, cls):
        db = MySQLApp().getInstance()
        sql = 'select  * from ' + tablename
        db.query(sql)
        result = db.fetchAllRows()

        #对行进行循环
        for row in result:
            md = cls(**row)
            self._m_cache[md.id] = md
            self._m_cacheKeys.append(md.id)
            print(md)

        db.close()
Esempio n. 5
0
    def update(self,pk,**kwargs):
        params = []
        for k, v in self.__mappings__.iteritems():
            #做一次属性校验,将不可更改的剔除
            if v.canset == False:
                if v.name in kwargs:
                   del kwargs[v.name]

        for k, v in kwargs.iteritems():
            if isinstance(v,unicode): ##判断是否已经编码,如果没有就utf-8编码
                v = v.encode('utf-8')
            if isinstance(v,str) == False:## value的值是否是 ‘字符串’ 如果不是,变成字符串
                v = str(v)
            params.append(k + '=' + "'" + v + "'")##;paramers是一个列表

        sql = 'update  %s set %s where %s=%s' % (self.__table__, ','.join(params),self.__primary_key__,pk)
        print('SQL: %s' % sql)
        db = MySQLApp().getInstance()
        result = db.update(sql)
        db.close()
        print(result)
        return result