def actions(self): # GET请求 if self.req.method == 'GET': print(self.req.args) # 判断权限 if not mysqldb.get_power(self.dict_login['username'], self.dict_login['hash'], self.table_name, self.req.args['action']): return make_response('没有权限') if self.req.args['action'] == 'findData': return self.find_data() else: return make_response('action错误') # POST请求 elif self.req.method == 'POST': print(self.req.form) # 判断权限 if not mysqldb.get_power(self.dict_login['username'], self.dict_login['hash'], self.table_name, self.req.form['action']): return make_response('没有权限') if self.req.form['action'] == 'insertData': return self.insert_data() elif self.req.form['action'] == 'delData': return self.del_data() else: return make_response('action错误') else: return make_response('method错误')
def operation(req): table_name = req.path[8:] dict_login = json.loads(req.cookies['logining']) # 查询数据 def find_data(): if 'whereStr' in req.args: str_where = req.args['whereStr'] else: str_where = '' if 'fieldStr' in req.args: str_field = req.args['fieldStr'] else: str_field = '' if 'sortStr' in req.args: str_sort = req.args['sortStr'] else: str_sort = '' if 'prePageNum' in req.args: pre_page_num = int(req.args['prePageNum']) else: pre_page_num = 0 if 'currPage' in req.args: curr_page = int(req.args['currPage']) else: curr_page = 0 args = { 'pre_page_num': pre_page_num, 'curr_page': curr_page, 'sort': str_sort } result = mysqldb.find_data(table_name, str_where, str_field, args) # print(result) if result: # 获取表头数据 list_head = mysqldb.get_head('name="' + table_name + '"') if list_head and len(list_head) > 0: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': list_head[0]['name'], 'name_ch': list_head[0]['name_ch'], 'field_ch': list_head[0]['field_ch'], 'field_en': list_head[0]['field_en'], 'data_type': list_head[0]['data_type'], 'field_width': list_head[0]['field_width'], 'field_sort': list_head[0]['field_sort'], 'rows': result['rows'] } else: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': '', 'name_ch': '', 'field_ch': '', 'field_en': '', 'data_type': '', 'field_width': '', 'field_sort': '', 'rows': result['rows'] } return make_response(json.dumps(dict_json, ensure_ascii=False)) else: return make_response('操作失败') # 插入数据 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错误') for item in list_data: 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'] = '' result = mysqldb.insert_data(table_name, list_data) # print(result) if result: # 操作记录 content = 'dataArr=' + re.sub( r'\"', "'", json.dumps(list_data, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '增加', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 修改数据 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错误') dict_update['update_name'] = dict_login['username'] dict_update['update_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) result = mysqldb.update_data(table_name, str_where, dict_update) # print(result) if result: # 操作记录 content = 'whereStr=' + re.sub( r'\"', "'", str_where) + '&updateJson=' + re.sub( r'\"', "'", json.dumps(dict_update, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '修改', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 删除数据 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错误') result = mysqldb.del_data(table_name, dict_where) # print(result) if result: # 操作记录 content = 'whereJson=' + re.sub( r'\"', "'", json.dumps(dict_where, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '删除', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # GET请求 if req.method == 'GET': print(req.args) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.args['action']): return make_response('没有权限') if req.args['action'] == 'findData': return find_data() else: return make_response('action错误') # POST请求 if req.method == 'POST': print(req.form) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.form['action']): return make_response('没有权限') if req.form['action'] == 'insertData': return insert_data() elif req.form['action'] == 'updateData': return update_data() elif req.form['action'] == 'delData': return del_data() else: return make_response('action错误') return make_response('action错误')
def operation(req): table_name = req.path[8:] dict_login = json.loads(req.cookies['logining']) # 查询数据 def find_data(): if 'whereStr' in req.args: str_where = req.args['whereStr'] else: str_where = '' if 'fieldStr' in req.args: str_field = req.args['fieldStr'] else: str_field = '' if 'sortStr' in req.args: str_sort = req.args['sortStr'] else: str_sort = '' if 'prePageNum' in req.args: pre_page_num = int(req.args['prePageNum']) else: pre_page_num = 0 if 'currPage' in req.args: curr_page = int(req.args['currPage']) else: curr_page = 0 args = { 'pre_page_num': pre_page_num, 'curr_page': curr_page, 'sort': str_sort } result = mysqldb.find_data(table_name, str_where, str_field, args) # print(result) if result: # 获取表头数据 list_head = mysqldb.get_head('name="' + table_name + '"') if list_head and len(list_head) > 0: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': list_head[0]['name'], 'name_ch': list_head[0]['name_ch'], 'field_ch': list_head[0]['field_ch'], 'field_en': list_head[0]['field_en'], 'data_type': list_head[0]['data_type'], 'field_width': list_head[0]['field_width'], 'field_sort': list_head[0]['field_sort'], 'rows': result['rows'] } else: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': '', 'name_ch': '', 'field_ch': '', 'field_en': '', 'data_type': '', 'field_width': '', 'field_sort': '', 'rows': result['rows'] } return make_response(json.dumps(dict_json, ensure_ascii=False)) else: return make_response('操作失败') # 上传文件 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错误') upload_files = req.files.getlist("file") for i, file in enumerate(upload_files): now_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) + "-" + str( time.time())[11:15] now_path = os.path.dirname( os.path.dirname(__file__) ) + "/static/uploadFile/" + now_time + "___" + file.filename if not os.path.exists(now_path): file.save(now_path) else: pass url = "/static/uploadFile/" + now_time + "___" + file.filename list_data[i]['name'] = file.filename list_data[i]['size'] = os.path.getsize(now_path) list_data[i]['url'] = url list_data[i]['create_name'] = dict_login['username'] list_data[i]['create_time'] = time.strftime( "%Y-%m-%d %H:%M:%S", time.localtime()) # print(list_data) result = mysqldb.insert_data(table_name, list_data) # print(result) if result: # 操作记录 content = 'dataArr=' + re.sub( r'\"', "'", json.dumps(list_data, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '上传文件', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 删除文件 def del_data(): if 'whereJson' in req.form: try: dict_where = json.loads(req.form['whereJson']) if not dict_where['url']: return make_response('whereJson错误') except: return make_response('whereJson错误') else: return make_response('whereJson错误') result = mysqldb.del_data(table_name, dict_where) # print(result) if result: for url in dict_where['url']: file_path = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + url) if os.path.exists(file_path): os.remove(file_path) else: pass # 操作记录 content = 'whereJson=' + re.sub( r'\"', "'", json.dumps(dict_where, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '删除文件', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # GET请求 if req.method == 'GET': print(req.args) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.args['action']): return make_response('没有权限') if req.args['action'] == 'findData': return find_data() else: return make_response('action错误') # POST请求 if req.method == 'POST': print(req.form) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.form['action']): return make_response('没有权限') if req.form['action'] == 'insertData': return insert_data() elif req.form['action'] == 'delData': return del_data() else: return make_response('action错误') return make_response('action错误')
def operation(req): table_name = req.path[8:] dict_login = json.loads(req.cookies['logining']) # 查询数据 def find_data(): if 'whereStr' in req.args: str_where = req.args['whereStr'] else: str_where = '' if 'sortStr' in req.args: str_sort = req.args['sortStr'] else: str_sort = '' if 'prePageNum' in req.args: pre_page_num = int(req.args['prePageNum']) else: pre_page_num = 0 if 'currPage' in req.args: curr_page = int(req.args['currPage']) else: curr_page = 0 str_field = 'user_list.id, user_list.username, user_list.password, user_list.name, user_list.email, user_list.phone, user_list.sex, user_list.age, user_list.create_name, user_list.create_time, user_list.update_name, user_list.update_time, user_list.roleId, role_class.class_name as roleName' args = { 'pre_page_num': pre_page_num, 'curr_page': curr_page, 'sort': str_sort } sql_lookup = 'user_list LEFT JOIN role_class ON user_list.roleId = role_class.id' result = mysqldb.find_data(sql_lookup, str_where, str_field, args) # print(result) if result: # 获取表头数据 list_head = mysqldb.get_head('name="' + table_name + '"') if list_head and len(list_head) > 0: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': list_head[0]['name'], 'name_ch': list_head[0]['name_ch'], 'field_ch': list_head[0]['field_ch'], 'field_en': list_head[0]['field_en'], 'data_type': list_head[0]['data_type'], 'field_width': list_head[0]['field_width'], 'field_sort': list_head[0]['field_sort'], 'rows': result['rows'] } else: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': '', 'name_ch': '', 'field_ch': '', 'field_en': '', 'data_type': '', 'field_width': '', 'field_sort': '', 'rows': result['rows'] } return make_response(json.dumps(dict_json, ensure_ascii=False)) else: return make_response('操作失败') # 插入数据 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错误') list_username = [] for item in list_data: if not item['username'] and not item['password']: return make_response('用户名和密码不能为空') if len(item['password']) < 6: return make_response('密码长度不能小于6') password = "******" + item['password'] + item['password'][0:3] md5 = hashlib.md5() md5.update(password.encode(encoding='utf-8')) md5_password = md5.hexdigest() item['password'] = md5_password 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'] = '' list_username.append(item['username']) str_where = 'username in ' + re.sub(r'\,', '', str( tuple(list_username))) str_field = 'id, username' args = {'pre_page_num': 0, 'curr_page': 0, 'sort': ''} find_result = mysqldb.find_data(table_name, str_where, str_field, args) if find_result['count'] != 0: return make_response('用户名已存在') result = mysqldb.insert_data(table_name, list_data) # print(result) if result: # 操作记录 content = 'dataArr=' + re.sub( r'\"', "'", json.dumps(list_data, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '增加', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 修改数据 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 or 'username' in dict_update: return make_response('updateJson错误') except: return make_response('updateJson错误') else: return make_response('updateJson错误') if 'password' in dict_update: if len(dict_update['password']) < 6: return make_response('密码长度不能小于6') else: password = "******" + dict_update['password'] + dict_update[ 'password'][0:3] md5 = hashlib.md5() md5.update(password.encode(encoding='utf-8')) md5_password = md5.hexdigest() dict_update['password'] = md5_password else: pass dict_update['update_name'] = dict_login['username'] dict_update['update_time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) result = mysqldb.update_data(table_name, str_where, dict_update) # print(result) if result: # 操作记录 content = 'whereStr=' + re.sub( r'\"', "'", str_where) + '&updateJson=' + re.sub( r'\"', "'", json.dumps(dict_update, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '修改', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 删除数据 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错误') result = mysqldb.del_data(table_name, dict_where) # print(result) if result: # 操作记录 content = 'whereJson=' + re.sub( r'\"', "'", json.dumps(dict_where, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '删除', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # GET请求 if req.method == 'GET': print(req.args) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.args['action']): return make_response('没有权限') if req.args['action'] == 'findData': return find_data() else: return make_response('action错误') # POST请求 if req.method == 'POST': print(req.form) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.form['action']): return make_response('没有权限') if req.form['action'] == 'insertData': return insert_data() elif req.form['action'] == 'updateData': return update_data() elif req.form['action'] == 'delData': return del_data() else: return make_response('action错误') return make_response('action错误')
def operation(req): table_name = req.path[8:] dict_login = json.loads(req.cookies['logining']) # 查询数据 def find_data(): if 'whereStr' in req.args: str_where = req.args['whereStr'] else: str_where = '' if 'fieldStr' in req.args: str_field = req.args['fieldStr'] else: str_field = '' if 'sortStr' in req.args: str_sort = req.args['sortStr'] else: str_sort = '' if 'prePageNum' in req.args: pre_page_num = int(req.args['prePageNum']) else: pre_page_num = 0 if 'currPage' in req.args: curr_page = int(req.args['currPage']) else: curr_page = 0 args = { 'pre_page_num': pre_page_num, 'curr_page': curr_page, 'sort': str_sort } result = mysqldb.find_data(table_name, str_where, str_field, args) # print(result) if result: # 获取表头数据 list_head = mysqldb.get_head('name="' + table_name + '"') if list_head and len(list_head) > 0: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': list_head[0]['name'], 'name_ch': list_head[0]['name_ch'], 'field_ch': list_head[0]['field_ch'], 'field_en': list_head[0]['field_en'], 'data_type': list_head[0]['data_type'], 'field_width': list_head[0]['field_width'], 'field_sort': list_head[0]['field_sort'], 'rows': result['rows'] } else: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': '', 'name_ch': '', 'field_ch': '', 'field_en': '', 'data_type': '', 'field_width': '', 'field_sort': '', 'rows': result['rows'] } return make_response(json.dumps(dict_json, ensure_ascii=False)) else: return make_response('操作失败') # GET请求 if req.method == 'GET': print(req.args) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.args['action']): return make_response('没有权限') if req.args['action'] == 'findData': return find_data() else: return make_response('action错误') return make_response('action错误')
def operation(req): table_name = req.path[8:] dict_login = json.loads(req.cookies['logining']) # 查询数据 def find_data(): if 'whereStr' in req.args: str_where = req.args['whereStr'] else: str_where = '' if 'fieldStr' in req.args: str_field = req.args['fieldStr'] else: str_field = '' if 'sortStr' in req.args: str_sort = req.args['sortStr'] else: str_sort = '' if 'prePageNum' in req.args: pre_page_num = int(req.args['prePageNum']) else: pre_page_num = 0 if 'currPage' in req.args: curr_page = int(req.args['currPage']) else: curr_page = 0 args = { 'pre_page_num': pre_page_num, 'curr_page': curr_page, 'sort': str_sort } result = mysqldb.find_data(table_name, str_where, str_field, args) # print(result) if result: # 获取表头数据 list_head = mysqldb.get_head('name="' + table_name + '"') if list_head and len(list_head) > 0: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': list_head[0]['name'], 'name_ch': list_head[0]['name_ch'], 'field_ch': list_head[0]['field_ch'], 'field_en': list_head[0]['field_en'], 'data_type': list_head[0]['data_type'], 'field_width': list_head[0]['field_width'], 'field_sort': list_head[0]['field_sort'], 'rows': result['rows'] } else: dict_json = { 'code': 0, 'msg': '', 'count': result['count'], 'prePageNum': pre_page_num, 'currPage': curr_page, 'name': '', 'name_ch': '', 'field_ch': '', 'field_en': '', 'data_type': '', 'field_width': '', 'field_sort': '', 'rows': result['rows'] } return make_response(json.dumps(dict_json, ensure_ascii=False)) else: return make_response('操作失败') # 查询处理过的数据 def find_data_all(): if 'whereStr' in req.args: str_where = req.args['whereStr'] else: str_where = '' # 获取表头数据 list_head = mysqldb.get_head(str_where) if list_head and len(list_head) >= 0: name = 'dataList' name_ch = '数据列表' field_ch = '模块ID;数据表名称;数据表中文名;中文字段集合;英文字段集合;字段数据类型集合;字段列宽集合;字段排序集合' field_en = 'id;name;name_ch;field_ch;field_en;data_type;field_width;field_sort' data_type = 'int(6);text;text;text;text;int;int' field_width = '100;100;150;200;200;200;200;200' field_sort = '1;2;3;4;5;6;7;8' dict_json = { 'code': 0, 'msg': '', 'count': len(list_head), 'prePageNum': 100000, 'currPage': 1, 'name': name, 'name_ch': name_ch, 'field_ch': field_ch, 'field_en': field_en, 'data_type': data_type, 'field_width': field_width, 'field_sort': field_sort, 'rows': list_head } return make_response(json.dumps(dict_json, ensure_ascii=False)) else: return make_response('操作失败') # 重启server def p_work(): time.sleep(2) # 重启server print("重启server") uwsgi.reload() # 复制前后端代码文件 def copy_file_fn(this_table_name): file_src_html = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/static/page/page_demo.html") file_dest_html = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/static/page/" + this_table_name + ".html") file_src_py = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/views/page_demo.py") file_dest_py = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/views/" + this_table_name + ".py") if not os.path.exists(file_dest_html): shutil.copyfile(file_src_html, file_dest_html) print("复制" + this_table_name + ".html成功") if not os.path.exists(file_dest_py): shutil.copyfile(file_src_py, file_dest_py) print("复制" + this_table_name + ".py成功") # 给routerUrl.js添加routerUrl file_routerUrl = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/static/js/router/routerUrl.js") with open(file_routerUrl, 'r+') as f: data = f.read() list_router_url = json.loads(data.split(" = ")[1]) router_url_this = "/page/" + this_table_name list_router_url.append(router_url_this) router_url_str = "var routerUrl = " + json.dumps(list_router_url) f.seek(0, 0) f.truncate() f.write(router_url_str) print("写入routerUrl.js成功") f.closed # 给urls.py添加给url file_urls = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/urls.py") with open(file_urls, 'r+') as f: data = f.read() data = re.sub(r'\'', '"', data.split(" = ")[1]) dict_url = json.loads(data) url_this = "/python/" + this_table_name dict_url[url_this] = "flaskApp.views." + this_table_name dict_url_str = "dict_url = " + json.dumps(dict_url) dict_url_str = re.sub(r'"', '\'', dict_url_str) f.seek(0, 0) f.truncate() f.write(dict_url_str) print("写入urls.py成功") f.closed p = Process(target=p_work, args=()) p.start() return make_response('操作成功') # 删除前后端代码文件 def remove_file_fn(this_table_name): file_dest_html = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/static/page/" + this_table_name + ".html") file_dest_py = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/views/" + this_table_name + ".py") if os.path.exists(file_dest_html): os.remove(file_dest_html) print("删除" + this_table_name + ".html成功") if os.path.exists(file_dest_py): os.remove(file_dest_py) print("删除" + this_table_name + ".py成功") # 给routerUrl.js删除routerUrl file_routerUrl = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/static/js/router/routerUrl.js") with open(file_routerUrl, 'r+') as f: data = f.read() list_router_url = json.loads(data.split(" = ")[1]) router_url_this = '/page/' + this_table_name list_router_url.remove(router_url_this) router_url_str = "var routerUrl = " + json.dumps(list_router_url) f.seek(0, 0) f.truncate() f.write(router_url_str) print("写入routerUrl.js成功") f.closed # 给urls.py删除给url file_urls = os.path.normpath( os.path.dirname(os.path.dirname(__file__)) + "/urls.py") with open(file_urls, 'r+') as f: data = f.read() data = re.sub(r'\'', '"', data.split(" = ")[1]) dict_url = json.loads(data) url_this = '/python/' + this_table_name del dict_url[url_this] dict_url_str = "dict_url = " + json.dumps(dict_url) dict_url_str = re.sub(r'"', '\'', dict_url_str) f.seek(0, 0) f.truncate() f.write(dict_url_str) print("写入urls.py成功") f.closed p = Process(target=p_work, args=()) p.start() return make_response('操作成功') # 插入list_data def insert_data_fn(list_data): result = mysqldb.insert_data(table_name, list_data) # print(result) if result: print('插入list_data成功') # 操作记录 content = 'dataArr=' + re.sub( r'\"', "'", json.dumps(list_data, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '增加', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 插入数据 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) # 修改数据 def update_data_fn(table_name, str_where, dict_update): result = mysqldb.update_data(table_name, str_where, dict_update) # print(result) if result: # 操作记录 content = 'whereStr=' + re.sub( r'\"', "'", str_where) + '&updateJson=' + re.sub( r'\"', "'", json.dumps(dict_update, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '修改', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 修改数据 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) def delete_data_fn(table_name, dict_where): result = mysqldb.del_data(table_name, dict_where) # print(result) if result: # 操作记录 content = 'whereJson=' + re.sub( r'\"', "'", json.dumps(dict_where, ensure_ascii=False)) dict_record = { 'username': dict_login['username'], 'dbName': table_name, 'action': '删除', 'content': content, 'os': dict_login['os'], 'px': dict_login['px'], 'ip': req.remote_addr, 'time': time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) } mysqldb.set_record(dict_record) return make_response('操作成功') else: return make_response('操作失败') # 删除数据 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) # GET请求 if req.method == 'GET': print(req.args) # 判断权限 if req.args['action'] == 'findDataAll': action2 = 'findData' else: action2 = req.args['action'] if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, action2): return make_response('没有权限') if req.args['action'] == 'findData': return find_data() elif req.args['action'] == 'findDataAll': return find_data_all() else: return make_response('action错误') # POST请求 if req.method == 'POST': print(req.form) # 判断权限 if not mysqldb.get_power(dict_login['username'], dict_login['hash'], table_name, req.form['action']): return make_response('没有权限') if req.form['action'] == 'insertData': return insert_data() elif req.form['action'] == 'updateData': return update_data() elif req.form['action'] == 'delData': return del_data() else: return make_response('action错误') return make_response('action错误')