예제 #1
0
    def del_data():
        if 'whereJson' in req.form:
            try:
                dict_where = json.loads(req.form['whereJson'])
                if len(dict_where) != 1:
                    return make_response('whereJson错误')
            except:
                return make_response('whereJson错误')
        else:
            return make_response('whereJson错误')

        if 'id' in dict_where:
            str_where = 'id=' + str(dict_where['id'][0])
        else:
            str_where = 'modelId=' + str(dict_where['modelId'][0])
        str_field = 'name,field_en'
        args = {'pre_page_num': 1, 'curr_page': 1, 'sort': ''}
        result = mysqldb.find_data(table_name, str_where, str_field, args)
        this_table_name = result['rows'][0]['name']
        if 'id' in dict_where:
            # 删除列
            str_data = 'drop ' + result['rows'][0]['field_en']
            result = mysqldb.update_col(this_table_name, str_data)
            if not result:
                return make_response('操作失败')
            return delete_data_fn(table_name, dict_where)

        else:
            # 删除表
            result = mysqldb.drop_table(this_table_name)
            if not result:
                return make_response('操作失败')
            print("删除数据表完成")
            delete_data_fn(table_name, dict_where)
            return remove_file_fn(this_table_name)
예제 #2
0
    def del_col():
        if 'dataJson' in req.form:
            try:
                dict_data = json.loads(req.form['dataJson'])
            except:
                return make_response('dataJson错误')
        else:
            return make_response('dataJson错误')

        if not dict_data['fieldName']:
            return make_response('dataJson错误')

        str_data = 'drop ' + dict_data['fieldName']

        result = mysqldb.update_col(table_name, str_data)
        # print(result)

        if result:
            return make_response('操作成功')
        else:
            return make_response('操作失败')
예제 #3
0
    def add_col(self):
        if 'dataJson' in self.req.form:
            try:
                dict_data = json.loads(self.req.form['dataJson'])
            except:
                return make_response('dataJson错误')
        else:
            return make_response('dataJson错误')

        if not dict_data['fieldName'] and not dict_data['dataType']:
            return make_response('dataJson错误')

        str_data = 'add ' + dict_data['fieldName'] + ' ' + dict_data[
            'dataType'] + ' not null'
        result = mysqldb.update_col(self.table_name, str_data)
        # print(result)

        if result:
            return make_response('操作成功')
        else:
            return make_response('操作失败')
예제 #4
0
    def update_col():
        if 'dataJson' in req.form:
            try:
                dict_data = json.loads(req.form['dataJson'])
            except:
                return make_response('dataJson错误')
        else:
            return make_response('dataJson错误')

        if not dict_data['fieldName'] and not dict_data['fieldNewName']:
            return make_response('dataJson错误')

        str_data = 'change ' + dict_data['fieldName'] + ' ' + dict_data[
            'fieldNewName']
        if dict_data['dataNewType']:
            str_data += ' ' + dict_data['dataNewType']

        result = mysqldb.update_col(table_name, str_data)
        # print(result)

        if result:
            return make_response('操作成功')
        else:
            return make_response('操作失败')
예제 #5
0
    def update_data():
        if 'whereStr' in req.form:
            str_where = req.form['whereStr']
            if not str_where:
                return make_response('whereStr错误')
        else:
            return make_response('whereStr错误')

        if 'updateJson' in req.form:
            try:
                dict_update = json.loads(req.form['updateJson'])
                if len(dict_update) == 0:
                    return make_response('updateJson错误')
                if 'id' in dict_update:
                    return make_response('updateJson错误')
            except:
                return make_response('updateJson错误')
        else:
            return make_response('updateJson错误')

        if not dict_update['field_ch']:
            return make_response('中文字段不能为空')

        if not dict_update['data_type']:
            return make_response('字段数据类型不能为空')

        if re.compile(r'^\w+$').match(dict_update['field_en']) == None:
            return make_response('英文字段必须为字母\数字\下划线')

        if re.compile(r'^[1-9][0-9]*$').match(str(
                dict_update['field_width'])) == None:
            return make_response('字段列宽必须为正整数')

        if re.compile(r'^[1-9][0-9]*$').match(str(
                dict_update['field_sort'])) == None:
            return make_response('字段排序必须为正整数')

        if dict_update['field_en'] == 'id':
            return make_response('该字段不能修改')

        dict_update['update_name'] = dict_login['username']
        dict_update['update_time'] = time.strftime("%Y-%m-%d %H:%M:%S",
                                                   time.localtime())

        str_field = 'name,modelId,field_en'
        args = {'pre_page_num': 1, 'curr_page': 1, 'sort': ''}
        result = mysqldb.find_data(table_name, str_where, str_field, args)
        if result['rows'][0]['field_en'] == dict_update['field_en']:
            return update_data_fn(table_name, str_where, dict_update)
        else:
            this_table_name = result['rows'][0]['name']

            # 查询字段是否存在
            this_str_where = 'modelId=' + str(
                result['rows'][0]['modelId']
            ) + ' and field_en="' + dict_update['field_en'] + '"'
            str_field = 'field_en'
            args = {'pre_page_num': 1, 'curr_page': 1, 'sort': ''}
            this_result = mysqldb.find_data(table_name, this_str_where,
                                            str_field, args)
            if this_result['count'] > 0:
                return make_response('字段已存在')

            # 修改列
            if dict_update['data_type'] == 'int' or dict_update[
                    'data_type'] == 'int(6)':
                data_type = dict_update['data_type']
            else:
                data_type = 'VARCHAR(100)'
            str_data = 'change ' + result['rows'][0][
                'field_en'] + ' ' + dict_update[
                    'field_en'] + ' ' + data_type + ' not null'
            result = mysqldb.update_col(this_table_name, str_data)
            if not result:
                return make_response('操作失败')
            return update_data_fn(table_name, str_where, dict_update)
예제 #6
0
    def insert_data():
        if 'dataArr' in req.form:
            try:
                list_data = json.loads(req.form['dataArr'])
                if len(list_data) == 0:
                    return make_response('dataArr错误')
            except:
                return make_response('dataArr错误')
        else:
            return make_response('dataArr错误')

        if len(list_data) > 1:
            return make_response('不支持批量插入')
        str_field_en = '('
        for index, item in enumerate(list_data):
            if item['field_en'] == 'id':
                item['data_type'] = 'int'
                item['field_width'] = 100
                item['field_sort'] = 1
            item['create_name'] = dict_login['username']
            item['create_time'] = time.strftime("%Y-%m-%d %H:%M:%S",
                                                time.localtime())
            item['update_name'] = ''
            item['update_time'] = ''
            item['modelId'] = item['id']
            del item['id']

            if len(str(item['modelId'])) != 6:
                return make_response('modelId长度必须为6')
            if re.compile(r'^[A-Za-z]+_[A-Za-z]+$').match(
                    item['name']) == None:
                return make_response('数据表名必须为字母_字母组成')
            if item['name'] == 'page_demo':
                return make_response('该数据表名已被占用')
            if not item['field_ch']:
                return make_response('中文字段不能为空')
            if not item['data_type']:
                return make_response('字段数据类型不能为空')
            if re.compile(r'^\w+$').match(item['field_en']) == None:
                return make_response('英文字段必须为字母\数字\下划线')
            if re.compile(r'^[1-9][0-9]*$').match(str(
                    item['field_width'])) == None:
                return make_response('字段列宽必须为正整数')
            if re.compile(r'^[1-9][0-9]*$').match(str(
                    item['field_sort'])) == None:
                return make_response('字段排序必须为正整数')
            str_field_en += '"' + item['field_en'] + '"'
            if index < len(list_data) - 1:
                str_field_en += ','

        str_field_en += ')'
        #查询字段是否存在
        str_where = 'modelId=' + str(
            list_data[0]['modelId']) + ' and field_en in' + str_field_en
        str_field = 'modelId,field_en'
        args = {'pre_page_num': 1, 'curr_page': 1, 'sort': ''}
        result = mysqldb.find_data(table_name, str_where, str_field, args)
        if result['count'] > 0:
            return make_response('字段名已存在')

        this_table_name = list_data[0]['name']
        if list_data[0]['field_en'] == 'id':
            # 创建数据表
            result = mysqldb.create_table(this_table_name)
            if not result:
                return make_response('操作失败')
            print("创建数据表完成")
            insert_data_fn(list_data)
            return copy_file_fn(this_table_name)
        else:
            # 给数据表插入列
            if list_data[0]['data_type'] == 'int' or list_data[0][
                    'data_type'] == 'int(6)':
                data_type = list_data[0]['data_type']
            elif list_data[0]['data_type'] == 'textarea':
                data_type = 'VARCHAR(3000)'
            elif list_data[0]['data_type'] == 'decimal(2)' or list_data[0][
                    'data_type'] == 'decimal(4)':
                data_type = 'FLOAT'
            else:
                data_type = 'VARCHAR(100)'
            str_data = 'add ' + list_data[0][
                'field_en'] + ' ' + data_type + ' not null'
            result = mysqldb.update_col(this_table_name, str_data)
            print("插入列完成")
            if not result:
                return make_response('操作失败')
            return insert_data_fn(list_data)