Beispiel #1
0
    def put(self):
        '''
        create by bigzhu at 15/04/23 17:33:33 udpate数据,只要value有id, 可以不写where
        '''
        self.set_header("Content-Type", "application/json")
        if self.current_user:
            pass
        else:
            raise Exception('必须登录才能操作')
        data = json.loads(self.request.body)
        t = data.get('t')  # table
        w = data.get('w')  # where
        v = data.get('v')  # value

        v = db_bz.transTimeValueByTable(self.pg, t, v)
        if w is None:
            id = v.get('id')
            if id is None:
                raise Exception('没有足够的信息来进行update操作')
            w = "id=%s" % id

        trans = self.pg.db.transaction()
        count = self.pg.db.update(t, w, **v)
        if count == 1:
            trans.commit()
        else:
            trans.rollback()
            raise Exception('不允许update %s 条记录,请检查条件' % count)

        self.write(json.dumps({'error': '0'}))
Beispiel #2
0
    def post(self):
        '''
        create by bigzhu at 15/04/23 17:33:09 insert 返回 id
        '''
        self.set_header("Content-Type", "application/json")
        if self.current_user:
            user_id = self.current_user
        else:
            raise Exception('必须登录才能操作')

        data = json.loads(self.request.body)
        t = data.get('t')  # table
        v = data.get('v')  # value

        v = db_bz.transTimeValueByTable(self.pg, t, v)
        # 插入的值有id就update,只能udpate一条,没有就 insert
        id = v.get('id')
        if id is not None:
            w = "id=%s" % id
            trans = self.pg.db.transaction()
            count = self.pg.db.update(t, w, **v)
            if count == 1:
                trans.commit()
                self.write(json.dumps({'error': '0'}))
                return
            else:
                trans.rollback()

        seq = t + '_id_seq'
        v['user_id'] = user_id
        id = self.pg.db.insert(t, seqname=seq, **v)
        self.write(json.dumps({'error': '0', 'id': id}))
Beispiel #3
0
    def post(self):
        '''
        type: insert delete query select
        create by bigzhu at 15/06/07 12:40:20
        '''
        self.set_header("Content-Type", "application/json")
        if self.current_user:
            user_id = self.current_user
        else:
            raise Exception('必须登录才能操作')

        data = json.loads(self.request.body)
        oper_type = data.get('type')
        if oper_type == 'insert':
            v = data.get('v')
            t = data.get('t')
            v = db_bz.transTimeValueByTable(self.pg, t, v)
            # 插入的值有id就update,只能udpate一条,没有就 insert
            id = v.get('id')
            if id is not None:
                w = "id=%s" % id
                trans = self.pg.db.transaction()
                count = self.pg.db.update(t, w, **v)
                if count == 1:
                    trans.commit()
                    self.write(json.dumps({'error': OK}))
                    return
                else:
                    trans.rollback()

            seq = t + '_id_seq'
            v['user_id'] = user_id
            id = self.pg.db.insert(t, seqname=seq, **v)
            self.write(json.dumps({'error': OK, 'id': id}))
            return
        elif oper_type == 'delete':
            t = data.get('t')
            ids = data.get('ids')
            w = 'id in (%s) ' % ids
            c = data.get('c')
            trans = self.pg.db.transaction()
            count = self.pg.db.update(t, w, is_delete=1)
            if count == int(c):
                trans.commit()
            else:
                trans.rollback()
                raise Exception("按条件找到%s条,指定要删除%s条,取消删除" % (count, c))
            self.write(json.dumps({'error': '0'}))