def get(self): try: self.parser.add_argument('page', type=int, help='The page must be int type', required=True) self.parser.add_argument('per_page', type=int, help='The per_page must be int type', required=True) data = self.parser.parse_args( strict=True) # 获取传输的值/strict=True代表设置如果传以上未指定的参数主动报错 page = data['page'] per_page = data['per_page'] if page < 1: return response("The page must be larger than 1", 400) users = User.query.paginate(page, per_page) if users: resp_data = { "page": users.page, "pages": users.pages, "per_page": users.per_page, "has_prev": users.has_prev, "has_next": users.has_next, "total": users.total, 'api_list': [i.to_json() for i in users.items] } return jsonify(response(resp_data)) else: return response('user does`t exists', 400) except Exception as e: return response(f"{e}", 500)
def get(self, report_id): try: report = Report.query.filter_by(id=report_id).first() if report: return jsonify(response(info=report.to_json())) else: return response('report does`t exists', 400) except Exception as e: return response(f"{e}", 500)
def get(self, api_id): try: api_ = ApiModel.query.filter_by(id=api_id).first() if api_: return jsonify(response(api_.to_json())) else: return response('api does`t exists', 400) except Exception as e: return response(f"{e}", 500)
def get(self, user_id): try: user = User.query.filter_by(id=user_id).first() if user: return jsonify(response(user.to_json())) else: return response('user does`t exists', 400) except Exception as e: return response(f"{e}", 500)
def get(self): try: reports = Report.query.all() if reports: return jsonify( response([result.to_json() for result in reports])) else: return response('reports does`t exists', 400) except Exception as e: return response(f"{e}", 500)
def delete(self, user_id): try: # 直接物理删除数据 flag = User.query.filter_by(id=user_id).delete() if flag: session_commit() return response(f"delete {user_id} successfully") else: return response(f'user {user_id} does`t exists', 400) except Exception as e: return response(f"{e}", 500)
def delete(self, api_id): try: # 直接物理删除数据 flag = ApiModel.query.filter_by(id=api_id).delete() session_commit() if flag: return response() else: return response(f'api {api_id}(id) does`t exists', 400) except Exception as e: return response(f'{e}', 500)
def get(self): info = {"name": self.fake.name(), "phone": self.fake.phone_number(), "id": self.fake.ssn(min_age=18, max_age=90), "email": self.fake.email(), "address": self.fake.address(), "credit_card": self.fake.credit_card_number(card_type=None), # 卡号 "postcode": self.fake.postcode(), } if info: return response(info) return response("获取信息失败,请重试!", 400)
def delete(self, report_id): try: flag = Report.query.filter_by(id=report_id).delete() msg = session_commit() if msg: return response(f"{msg}", 500) if flag: return response() else: return response(f'report {report_id}(id) does`t exists', 400) except Exception as e: return response(f"{e}", 500)
def post(self): data = request.get_json() print(data) not_exist_fields = get_not_exist_fields(data.keys(), Report) if not_exist_fields: return response(f"Unknown arguments: {not_exist_fields}", 404) new_report = Report(**data) msg = session_add(new_report) if msg: return response(f"{msg}", 500) else: return response("report add successfully at {0}".format( time.strftime("%Y-%m-%d %H:%M:%S")))
def post(self): """第一种,以文件流的方式""" data = request.files file = data.get("file") if not file: return response("Arguments file don`t exist!", 400) stream = file.stream filename = secure_filename(file.filename) file_path = os.path.join(run_config.UPLOAD_FOLDER, filename) if self.allowed_file(filename): with open(file_path, "wb") as out: out.write(stream.read()) return response({"path": file_path}) return response(f"Allowed file types are: {run_config.ALLOWED_EXTENSIONS}", 400)
def post(self): user_data = request.get_json() not_exist_fields = get_not_exist_fields(user_data.keys(), User) if not_exist_fields: return response(f"Unknown arguments: {not_exist_fields}", 404) form = RegisterForm(data=user_data) user_data['password'] = User.hash_password(user_data['password']) if form.validate(): new_user = User(**user_data) session_add(new_user) msg = session_add(new_user) if msg: return response(f"{msg}", 500) else: return response("user create successfully") return response(form.errors, 400)
def post(self): """读取本地excel to json""" if 'excel' in request.files: # 获取上传的文件 filename = request.files['excel'].filename # 获取文件的扩展名和内容 extension = filename.split(".")[-1] content = request.files['excel'].read() sheet = pyexcel.get_sheet(file_type=extension, file_content=content) # 将第一行当做headers sheet.name_columns_by_row(0) # sheet.save_to_database() # 返回json return response({"result": sheet.dict}) else: return response("Arguments excel file don`t exist!", 400)
def post(self): api_data = request.get_json() not_exist_fields = get_not_exist_fields(api_data.keys(), ApiModel) if not_exist_fields: return response(f"Unknown arguments: {not_exist_fields}", 404) form = ApiForm(data=api_data) if form.validate(): new_api = ApiModel(**api_data) session_add(new_api) msg = session_add(new_api) if msg: return response(f"{msg}", 500) else: return response("api add successfully at {0}".format( time.strftime("%Y-%m-%d %H:%M:%S"))) return response(form.errors, 400)
def put(self, api_id): api_data = request.get_json() not_exist_fields = get_not_exist_fields(api_data.keys(), ApiModel) if not_exist_fields: return response(f"Unknown arguments: {not_exist_fields}", 404) api_ = ApiModel.query.filter_by(id=api_id).first() if not api_: return response('api does`t exists', 400) # 直接修改字段is_active,逻辑删除 # api_.from_json(**{"is_active": 0}) api_data['modified_at'] = datetime.now() api_.from_json(**api_data) msg = session_commit() if not msg: return response() else: return response(f"{msg}", 400)
def search(): db = g.restaurant_name try: status, data = search_food(request.args, db) if not status: return error_response(str(data)) return response(True, 'Foods search successful', data) except Exception as err: return error_response(str(err))
def put(self, user_id): data = request.get_json() try: not_exist_fields = get_not_exist_fields(data.keys(), User) if not_exist_fields: return response(f"Unknown arguments: {not_exist_fields}", 404) user = User.query.filter_by(id=user_id).first() if not user: return response(f'user {user_id} does`t exists', 400) # 直接修改字段is_active,逻辑删除 # user.from_json(**{"is_active": 0}) user.from_json(**data) user.modified_at = datetime.now() msg = session_commit() if not msg: return response() else: return response(f"{msg}", 400) except Exception as e: return response(f"{e}", 500)
def view_orders(): db = g.restaurant_name status, missing_field = validate_body(request.args, ['phone']) if not status: return error_response(f'{missing_field} is missing from query params') try: status, res = view_individual_order(request.args, db) if not status: return error_response(str(res)) return response(True, 'Your Orders', res) except Exception as err: return error_response(str(err))
def delete(): db = g.restaurant_name food_id = request.args.get('id') if not food_id: return error_response('id is required') try: status, data = delete_food(food_id, db) if not status: return error_response(str(data)) return response(True, 'Food deleted successfully', None) except Exception as err: return error_response(str(err))
def create_restaurant(): if g.restaurant_name: return error_response('Invalid route', 'error', 'RO', 404) body = request.get_json() if 'name' not in body: return error_response("Field 'name' is required") try: create_restaurant_domain(body['name']) except Exception as err: return error_response(str(err)) domain = f'{body["name"]}.eatie.com' return response(True, f'{domain} created successfully', None)
def update(): db = g.restaurant_name body = request.get_json() status, missing_field = validate_body(body, ['id']) if not status: return error_response(f'{missing_field} is required') try: status, data = update_food(body, db) if not status: return error_response(str(data)) return response(True, 'Food updated successfully', None) except Exception as err: return error_response(str(err))
def cancel(): body = request.get_json() db = g.restaurant_name status, missing_field = validate_body(body, ['phone']) if not status: return error_response(f'{missing_field} is required') try: status, res = cancel_orders(body, db) if not status: return error_response(str(res)) return response(True, 'Orders canceled successfully', None) except Exception as err: return error_response(str(err))
def order(): db = g.restaurant_name body = request.get_json() status, missing_field = validate_body(body, ['phone', 'food_id']) if not status: return error_response(f'{missing_field} is required') try: status, res = create_order(body, db) if not status: return error_response(str(res)) return response(True, 'Order created successfully', None) except Exception as err: return error_response(str(err))
def deliver(): body = request.get_json() db = g.restaurant_name status, missing_field = validate_body(body, ['phone']) if not status: return error_response(f'{missing_field} is required') try: status, res = deliver_orders(body, db) if not status: return error_response(str(res)) return response(True, 'Orders status updated', None) except Exception as err: return error_response(str(err))
def create(): body = request.get_json() db = g.restaurant_name status, missing_field = validate_body(body, ['name', 'picture_url', 'price']) if not status: return error_response(f'{missing_field} is required') try: status, res = insert_food(body, db) if not status: return error_response(str(res)) return response(True, 'Food created successfully', None) except Exception as err: return error_response(str(err))
def post(self): user_data = request.get_json() not_exist_fields = get_not_exist_fields(user_data.keys(), User) if not_exist_fields: return response(f"Unknown arguments: {not_exist_fields}", 404) form = LoginForm(data=user_data) if form.validate(): user = form.get_user() token = user.generate_auth_token() user_info = user.to_json() user_info.update({'token': token.decode('ascii')}) # login_user(user, remember=form.remember.data) return jsonify({'status': 'success', 'data': user_info}) return {'status': 'error', 'message': form.errors}, 404
def view(): args = request.args db = g.restaurant_name try: if not args: status, data = all_orders(db) elif 'phone' in args: status, data = view_individual_order(args, db) else: return error_response( 'phone should be present in the query params') if not status: return error_response(str(data)) return response(True, 'Success', data) except Exception as err: return error_response(str(err))
def signin_staff(): body = request.get_json() db = g.restaurant_name status, missing_field = validate_body(body, ['username', 'password']) if not status: return error_response(f'{missing_field} missing') try: status, data = login_staff(body, db) if not status: raise Exception(str(data)) token = encode_jwt({'name': data['name'], 'restaurant': db}) return response(True, 'Staff login successful', { 'token': token, 'restaurant': db }) except Exception as err: return error_response(str(err))
def get(self): try: # 联表查询 # 左外连接设置 isouter=True 或者直接使用 outerjoin query = db.session.query(User.username, ApiModel.url, ApiModel.id, ApiModel.status, ApiModel.name, ApiModel.created_at, ApiModel.description, ApiModel.body, ApiModel.header, ApiModel.imp, ApiModel.project, ApiModel.method, ApiModel.tags). \ outerjoin(User, ApiModel.user_id == User.id) # .join(Tag, ApiModel.id == Tag.api_id, isouter=True) # print([dict(zip(result.keys(), result)) for result in results]) self.parser.add_argument('page', type=int, help='The page must be int type', required=True) self.parser.add_argument('per_page', type=int, help='The per_page must be int type', required=True) self.parser.add_argument('sort', type=str, help='The sort must be string type') self.parser.add_argument('name', type=str, help='The name must be string type') data = self.parser.parse_args( strict=True) # 获取传输的值/strict=True代表设置如果传以上未指定的参数主动报错 page = data['page'] per_page = data['per_page'] sort = data.get('sort', None) name = data.get('name', None) if page < 1: return response("The page must be larger than 1", 400) if sort: apis = query.filter(ApiModel.is_active == 1).order_by( sort_id(sort, ApiModel)).paginate(page, per_page) else: apis = query.filter(ApiModel.is_active == 1).paginate( page, per_page) if name: apis = query.filter(ApiModel.is_active == 1, ApiModel.name == name).order_by( sort_id(sort, ApiModel)).paginate( page, per_page) if apis: resp_data = { "page": apis.page, "pages": apis.pages, "per_page": apis.per_page, "has_prev": apis.has_prev, "has_next": apis.has_next, "total": apis.total, 'api_list': [ dict(zip(result.keys(), result)) for result in apis.items ] } return jsonify(response(resp_data)) else: return response('api does`t exists', 400) except Exception as e: return response(f"{e}", 500)