python类abort()的实例源码

run_controller.py 文件源码 项目:column 作者: vmware 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def get(self, id):
        """Get run by id"""
        run = self.backend_store.get_run(id)
        if not run:
            return abort(404, message="Run {} doesn't exist".format(id))
        return run_model.format_response(run)
run_controller.py 文件源码 项目:column 作者: vmware 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def delete(self, id):
        """Delete run by id"""
        run = self.backend_store.get_run(id)
        if not run:
            return abort(404, message="Run {} doesn't exist".format(id))
        if not self.manager.delete_run(run):
            return abort(400, message="Failed to find the task queue "
                                      "manager of run {}.".format(id))
views.py 文件源码 项目:docsbox 作者: dveselov 项目源码 文件源码 阅读 35 收藏 0 点赞 0 评论 0
def get(self, task_id):
        """
        Returns information about task status.
        """
        queue = rq.get_queue()
        task = queue.fetch_job(task_id)
        if task:
            return {
                "id": task.id,
                "status": task.status,
                "result_url": task.result
            }
        else:
            return abort(404, message="Unknown task_id")
issues.py 文件源码 项目:GitDigger 作者: lc-soft 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def put(self, issue_id, username):
        if not current_user.is_authenticated:
            return abort(401, message='permission denied')
        issue = issues_service.get(issue_id)
        if issue is None:
            return abort(400, message='issue not found')
        user = users_service.get_by_username(username)
        if user is None:
            return abort(400, message='user not found')
        args = self.parser.parse_args()
        action = args.get('action')
        action = 'upvote' if action is None else action
        value = -1 if action == 'downvote' else 1
        voter = voters_service.get(user, issue)
        if voter is None:
            if current_user.points - points.VOTE < 0:
                return abort(403, message='points are not enough')
            current_user.points -= points.VOTE
            log = PointLog(action, points.VOTE, user, issue)
            voter = Voter(user, issue)
            db.session.add(voter)
            db.session.add(log)
            issue.points += value
        elif voter.value != value:
            issue.points += value
            voter.value = value
        else:
            return voter
        try:
            db.session.commit()
        except:
            db.session.rollback()
            return abort(500, message='operation failed')
        return voter
reqparse.py 文件源码 项目:locust-demo 作者: bmd 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def parse_args(self, req=None, strict=False):
        """Parse all arguments from the provided request and return the results
        as a Namespace

        :param strict: if req includes args not in parser, throw 400 BadRequest exception
        """
        if req is None:
            req = request

        namespace = self.namespace_class()

        # A record of arguments not yet parsed; as each is found
        # among self.args, it will be popped out
        req.unparsed_arguments = dict(self.argument_class('').source(req)) if strict else {}
        errors = {}
        for arg in self.args:
            value, found = arg.parse(req, self.bundle_errors)
            if isinstance(value, ValueError):
                errors.update(found)
                found = None
            if found or arg.store_missing:
                namespace[arg.dest or arg.name] = value
        if errors:
            flask_restful.abort(400, message=errors)

        if strict and req.unparsed_arguments:
            raise exceptions.BadRequest('Unknown arguments: %s'
                                        % ', '.join(req.unparsed_arguments.keys()))

        return namespace
group_recipes.py 文件源码 项目:server-application 作者: foodshipper 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def get(group_id):
        try:
            args = parser.parse_args()
        except BadRequest:
            return abort(400, message="Invalid arguments")

        with db:
            with db.cursor() as cursor:
                user_id = id_from_token(args['token'])
                if user_id is None:
                    return abort(403, message="Token is not allowed to view this group")

                cursor.execute("SELECT id FROM groups_rel WHERE user_id=%s AND groups_rel.group_id=%s",
                               [user_id, group_id])
                group = cursor.fetchone()
                if group is None:
                    return abort(403, message="Token is not allowed to view this group")

                cursor.execute("SELECT recipe_id, title, upvotes, veto, image, cheap, vegan, vegetarian, duration FROM group_recipes "
                               "LEFT JOIN rec_recipes ON group_recipes.recipe_id = rec_recipes.id "
                               "WHERE group_id=%s", [group_id])

                recipes = []

                for recipe in cursor.fetchall():
                    recipes.append({
                        'id': recipe[0],
                        'title': recipe[1],
                        'desc': None,
                        'upvotes': recipe[2],
                        'veto': recipe[3],
                        'image': recipe[4],
                        'cheap': recipe[5],
                        'vegan': recipe[6],
                        'vegetarian': recipe[7],
                        'duration': recipe[8]
                    })
                return recipes
fridge_items.py 文件源码 项目:server-application 作者: foodshipper 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def delete(self, ean):
        try:
            args = parser.parse_args()
        except Exception:
            return abort(400, message="Invalid arguments")
        with db:
            with db.cursor() as cursor:
                user_id = id_from_token(args['token'])

                cursor.execute("DELETE FROM fridge_items WHERE ean=%s AND fridge_items.user_id=%s", [ean, user_id])
                if cursor.rowcount == 1:
                    return None, 200
                else:
                    abort(404, message="Fridge item does not exist")
group.py 文件源码 项目:server-application 作者: foodshipper 项目源码 文件源码 阅读 31 收藏 0 点赞 0 评论 0
def get(group_id):
        try:
            args = parser.parse_args()
        except BadRequest:
            return abort(400, message="Invalid arguments")

        with db:
            with db.cursor() as cursor:
                user_id = id_from_token(args['token'])
                if user_id is None:
                    return abort(403, message="Token is not allowed to view this group")

                cursor.execute("SELECT day, COUNT(CASE WHEN invited THEN 1 END) AS invited, "
                               "COUNT(CASE WHEN accepted THEN 1 END) AS accepted, "
                               # Only if user is Group Member this will be 1
                               "COUNT(CASE WHEN user_id=%s THEN 1 END) = 1 AS allowed "
                               "FROM groups "
                               "JOIN groups_rel ON groups.id = groups_rel.group_id "
                               "WHERE groups.id=%s "
                               "GROUP BY groups.id ", [user_id, group_id])
                group = cursor.fetchone()
                if group is None:
                    return abort(404, message="Group not found")
                if not group[3]:
                    return abort(403, message="Token is not allowed to view this group")

                return {
                    'invited': group[1],
                    'accepted': group[2],
                    'day': str(group[0]),
                }
reqparse.py 文件源码 项目:noobotkit 作者: nazroll 项目源码 文件源码 阅读 16 收藏 0 点赞 0 评论 0
def parse_args(self, req=None, strict=False):
        """Parse all arguments from the provided request and return the results
        as a Namespace

        :param strict: if req includes args not in parser, throw 400 BadRequest exception
        """
        if req is None:
            req = request

        namespace = self.namespace_class()

        # A record of arguments not yet parsed; as each is found
        # among self.args, it will be popped out
        req.unparsed_arguments = dict(self.argument_class('').source(req)) if strict else {}
        errors = {}
        for arg in self.args:
            value, found = arg.parse(req, self.bundle_errors)
            if isinstance(value, ValueError):
                errors.update(found)
                found = None
            if found or arg.store_missing:
                namespace[arg.dest or arg.name] = value
        if errors:
            flask_restful.abort(400, message=errors)

        if strict and req.unparsed_arguments:
            raise exceptions.BadRequest('Unknown arguments: %s'
                                        % ', '.join(req.unparsed_arguments.keys()))

        return namespace
reqparse.py 文件源码 项目:Chorus 作者: DonaldBough 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def parse_args(self, req=None, strict=False):
        """Parse all arguments from the provided request and return the results
        as a Namespace

        :param strict: if req includes args not in parser, throw 400 BadRequest exception
        """
        if req is None:
            req = request

        namespace = self.namespace_class()

        # A record of arguments not yet parsed; as each is found
        # among self.args, it will be popped out
        req.unparsed_arguments = dict(self.argument_class('').source(req)) if strict else {}
        errors = {}
        for arg in self.args:
            value, found = arg.parse(req, self.bundle_errors)
            if isinstance(value, ValueError):
                errors.update(found)
                found = None
            if found or arg.store_missing:
                namespace[arg.dest or arg.name] = value
        if errors:
            flask_restful.abort(400, message=errors)

        if strict and req.unparsed_arguments:
            raise exceptions.BadRequest('Unknown arguments: %s'
                                        % ', '.join(req.unparsed_arguments.keys()))

        return namespace
msg.py 文件源码 项目:msg 作者: lily-mayfield 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def get(self, user_id=None, username=None):
        """Get a specific user's info by user ID
        *or* username.

        This returns a 400 if neither user_id nor
        username was provided. Returns a 404 if
        cannot find a user by the provided user ID
        or username.

        Arguments:
            user_id (int|None): --
            username (str|None): --

        Warning:
            If both `user_id` and `username` are specified,
            user_id will be used.

        Returns:
            None: If aborted.
            dict: If such a user is found, the return value
                is a dictionary describing the user.

        """

        if user_id is not None:
            user = db.session.query(models.User).get(user_id)

            if user is None:
                message = "No user matching ID: %s" % user_id
                flask_restful.abort(404, message=message)

        elif username is not None:
            user = (db.session.query(models.User)
                    .filter(models.User.username == username).first())

            if user is None:
                message = "No user matching username: %s" % username
                flask_restful.abort(404, message=message)

        else:
            message = "Must specify user_id or username."
            flask_restful.abort(400, message=message)

        return user.to_dict()
views.py 文件源码 项目:docsbox 作者: dveselov 项目源码 文件源码 阅读 17 收藏 0 点赞 0 评论 0
def post(self):
        """
        Recieves file and options, checks file mimetype,
        validates options and creates converting task
        """
        if "file" not in request.files:
            return abort(400, message="file field is required")
        else:
            with NamedTemporaryFile(delete=False, prefix=app.config["MEDIA_PATH"]) as tmp_file:
                request.files["file"].save(tmp_file)
                remove_file.schedule(
                    datetime.timedelta(seconds=app.config["ORIGINAL_FILE_TTL"])
                , tmp_file.name)
                with Magic() as magic: # detect mimetype
                    mimetype = magic.from_file(tmp_file.name)
                    if mimetype not in app.config["SUPPORTED_MIMETYPES"]:
                        return abort(400, message="Not supported mimetype: '{0}'".format(mimetype))
                options = request.form.get("options", None)
                if options: # options validation
                    options = ujson.loads(options)
                    formats = options.get("formats", None)
                    if not isinstance(formats, list) or not formats:
                        return abort(400, message="Invalid 'formats' value")
                    else:
                        for fmt in formats:
                            supported = (fmt in app.config["SUPPORTED_MIMETYPES"][mimetype]["formats"])
                            if not supported:
                                message = "'{0}' mimetype can't be converted to '{1}'"
                                return abort(400, message=message.format(mimetype, fmt))
                    thumbnails = options.get("thumbnails", None)
                    if thumbnails:
                        if not isinstance(thumbnails, dict):
                            return abort(400, message="Invalid 'thumbnails' value")
                        else:
                            thumbnails_size = thumbnails.get("size", None)
                            if not isinstance(thumbnails_size, str) or not thumbnails_size:
                                return abort(400, message="Invalid 'size' value")
                            else:
                                try:
                                    (width, height) = map(int, thumbnails_size.split("x"))
                                except ValueError:
                                    return abort(400, message="Invalid 'size' value")
                                else:
                                    options["thumbnails"]["size"] = (width, height)
                else:
                    if mimetype == "application/pdf":
                        options = {
                            "formats": ["html"]
                        }
                    else:
                        options = app.config["DEFAULT_OPTIONS"]
                task = process_document.queue(tmp_file.name, options, {
                    "mimetype": mimetype,
                })
        return {
            "id": task.id,
            "status": task.status,
        }


问题


面经


文章

微信
公众号

扫码关注公众号