def get_or_404(self, ident): rv = self.get(ident) if rv is None: raise NotFound() elif rv.is_delete == 1: raise NotFound(msg='该资源已删除', error_code=10021) return rv
def first_or_404(self, description=None): rv = self.first() if not rv: if description == None: raise NotFound() else: raise NotFound(msg=description) return rv
def get_or_404(self, ident, description=None): rv = self.get(ident) if not rv: if description == None: raise NotFound() else: raise NotFound(msg=description) return rv
def verify(email,password): user = User.query.filter_by(email=email).first() if not user: raise NotFound(msg='用户不存在') if not user.check_password(password): raise NotFound(msg='密码错误') scope= 'AdminScope' if user.auth==2 else 'UserScope' return {'uid':user.id,'scope':scope}
def paginate(self, page=None, per_page=None, error_out=True, max_per_page=None): if request: if page is None: try: page = int(request.args.get('page', 1)) except (TypeError, ValueError): if error_out: raise NotFound() page = 1 if per_page is None: try: per_page = int(request.args.get('per_page', 20)) except (TypeError, ValueError): if error_out: raise NotFound() per_page = 20 else: if page is None: page = 1 if per_page is None: per_page = 20 if max_per_page is not None: per_page = min(per_page, max_per_page) if page < 1: if error_out: raise NotFound(0) else: page = 1 if per_page < 0: if error_out: raise NotFound() else: per_page = 20 items = self.limit(per_page).offset((page - 1) * per_page).all() if not items and page != 1 and error_out: raise NotFound() # No need to count if we're on the first page and there are fewer # items than we expected. if page == 1 and len(items) < per_page: total = len(items) else: total = self.order_by(None).count() return Pagination(self, page, per_page, total, items)
def first_or_404(self): rv = self.first() if not rv: raise NotFound() return rv
def verify(email, password): user = User.query.filter_by(email=email).first() if not user: raise NotFound(msg="用户不存在") if not user.check_password(password): raise AuthFailed() return {"uid":user.id}
def delete_competition_api(id_): competition = Competition.get_by_id(id_) if competition is None: raise NotFound('Competition not found') competition.delete() raise DeleteSuccess('Competition has been deleted')
def set_cart(): form = CartForm().validate_for_api() # req = request.values # food_id = int(req['id']) if 'id' in req else 0 # number = int(req['number']) if 'number' in req else 0 # if food_id < 1 or number < 1: # return jsonify(resp) member_info = g.user if not member_info: return AuthFailed('请先登录') food_info = Food.query.filter_by(id=form.id.data).first() if not food_info: return NotFound('添加购物车失败-1') if food_info.stock < form.number.data: return ParameterException('添加购物车失败,库存不足') ret = MemberCart.set_items(member_id=member_info.uid, food_id=food_info.id, number=form.number.data) if not ret: return ParameterException('添加购物车失败-2') return Success('更新购物车成功')
def get_subject_byid(id): re = Subject.query.get(id) if not re: return NotFound() return jsonify(re)
def modify_contest_api(id_): contest = Contest.get_by_id(id_) if not contest: raise NotFound() form = ContestInfoForm().validate_for_api().data_ Contest.modify(id_, **form) return Success('Modify contest success')
def get_comments(book_id): comments = Comment.query.filter_by(book_id=book_id).all() if not comments: raise NotFound(msg='no comment') c = [comment for comment in comments] res = {"comment": c, "book_id": book_id} return res
def food_info(): form = IdForm().validate_for_api() id = form.id.data # req = request.values # id = int(req['id']) if 'id' in req else 0 food_info = Food.query.filter_by(id=id).first() if not food_info or not food_info.status: return NotFound(msg='美食已下架') member_info = g.user cart_number = 0 if member_info: cart_number = MemberCart.query.filter_by(member_id=member_info.uid).count() resp = {} resp['info'] = { "id": food_info.id, "name": food_info.name, "summary": food_info.summary, "total_count": food_info.total_count, "comment_count": food_info.comment_count, 'main_image': UrlManager.build_image_url(food_info.main_image), "price": str(food_info.price), "stock": food_info.stock, "pics": [UrlManager.build_image_url(food_info.main_image)] } resp['cart_number'] = cart_number return jsonify(resp)
def verify_by_email(email, password): user = User.query.filter_by(email=email).first() if not user: raise NotFound(message='User not found') if not user.check_password(password): raise AuthFailed() return {'uid': user.id, 'scope': user.auth}
def delete(): form = ImageForm().validate_for_api() host = form.host.data image = form.image.data certification = get_certification(host) # 判断是否鉴权 if certification: cert, key = cert_file_path(host) tls_config = docker.tls.TLSConfig(client_cert=(cert, key), verify=False) client = docker.DockerClient(base_url='tcp://' + host + ':2376', tls=tls_config) else: client = docker.DockerClient(base_url='tcp://' + host + ':2375') try: client.images.remove(image) except ImageNotFound: client.close() return NotFound() except APIError: client.close() return ImageUsed() # client.images.remove(image) client.close() return DeleteSuccess(msg='镜像删除成功')
def delete_problem_set_api(id_): problem_set = ProblemSet.get_by_id(id_) if problem_set is None: raise NotFound('Problem set not found') problem_set.delete() raise DeleteSuccess('Problem set has been deleted')
def get_banner(): result = Flbanner.query.filter_by(banner_status=1).order_by( Flbanner.post_date.desc() ).limit(5).all() if not result: raise NotFound(msg='no banner!', error_code=2001) return result
def api_paging(model): """请求格式: http://77.art:5000/seven/v1/park/search?page_num=xxx&page_size=xxx&sort=[{"field":"id","asc":"false"}] """ form = SearchForm().validate_for_api() try: page_num = form.page_num.data page_size = form.page_size.data or current_app.config['PER_PAGE'] q = form.q.data start = get_timestamp( form.start_time.data) if form.start_time.data is not "" else None end = get_timestamp( form.end_time.data) if form.end_time.data is not "" else None s_data = q if q is not None else '' _time = all([start, end]) _data = all([s_data]) data = model.query.filter_by() if not _time and _data: data = data.filter(model.title.contains(s_data)) elif not _data and _time: data = data.filter(model.create_time.between(start, end)) elif not _data and not _time: pass else: data = data.filter( and_(model.title.contains(s_data), model.create_time.between(start, end))) pagination = data.order_by(build_sort(model, form)).paginate( page=int(page_num), per_page=int(page_size)).items new_list = {'error_code': 0, 'data': pagination} return jsonify(new_list) except ValueError: return NotFound(message="检索错误")
def get_or_404(self, ident): rv = self.get(ident) if not rv: raise NotFound() return rv
def get_or_404(self, ident, e=None, error_code=None, msg=None): rv = self.get(ident) # 查询主键 if not rv: if e: raise e raise NotFound(error_code=error_code, msg=msg) return rv
def verify_token(token, secret): ua = request.headers.get('User-Agent', '') if ua != WHITELIST_UA: timestamp = int(request.headers.get('Timestamp', 0)) if abs(timestamp - int(time.time())) > 100: raise AuthFailed() my_secret = md5(token + str(timestamp)) if my_secret != secret: raise AuthFailed() s = Serializer(current_app.config['SECRET_KEY']) try: data = s.loads(token) except BadSignature: raise AuthFailed(msg='token is invalid', error_code=1002) except SignatureExpired: raise AuthFailed(msg='token is expired', error_code=1003) uid = data['uid'] user = User.get_by_id(uid) if not user: raise NotFound() allow = is_in_scope(user.scope, request.endpoint) if not allow: raise Forbidden() g.user = user return True
def all_or_404(self, e=None, error_code=None, msg=None): rv = list(self) if not rv: if e: raise e raise NotFound(error_code=error_code, msg=msg) return rv
def modify_camp_name_api(id_): camp = Camp.get_by_id(id_) if camp is None: raise NotFound('Course set not found') form = ModifyCampNameForm().validate_for_api().data_ camp.mofify(**form) raise Success('Course set has been modified')
def first_or_404(self): """Like :meth:`first` but aborts with 404 if not found instead of returning ``None``.""" rv = self.first() if rv is None: raise NotFound() return rv
def append_contest_api(id_): course = Course.get_by_id(id_) if course is None: raise NotFound('Course not found') form = AppendContestForm().validate_for_api().data_ course.append_contest(**form) raise Success('Contest appended')
def modify_course_api(id_): course = Course.get_by_id(id_) if course is None: raise NotFound('Course not found') form = ModifyCourseForm().validate_for_api().data_ course.modify(**form) raise Success('Course has been modified')
def create_course(id_): camp = Camp.get_by_id(id_) if camp is None: raise NotFound('Course set not found') form = CreateCourseForm().validate_for_api().data_ Course.create(camp_id=camp.id, **form) raise Success('Course has been created')
def get_single(id): post = Flposts.query.filter(Flposts.post_title != '', Flposts.post_content != '', Flposts.post_status == 'publish', Flposts.ID == id).first() if not post: raise NotFound() return jsonify(post)
def course_detail_api(id_): course = Course.get_by_id(id_) if course is None: raise NotFound('Course not found') return jsonify({ 'code': 0, 'data': course })
def book_search_sub_query(self, query): """搜索自动补充""" url = f"http://api.zhuishushenqi.com/book/auto-complete?query={query}" res = self.request_get_url(url) if res.get('ok') is True: return res.get('keywords') else: raise NotFound()