handlers.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:tcrudge 作者: CodeTeam 项目源码 文件源码
def post(self):
        """
        Handles POST request.
        Validates data and creates new item.
        Returns serialized object written to response.

        HTTPError 405 is raised in case of not creatable model (there must be
        _create method implemented in model class).

        HTTPError 400 is raised in case of violated constraints, invalid
        parameters and other data and integrity errors.

        :raises: HTTPError 405, 400
        """
        data = await self.validate(self.request.body, self.post_schema_input)
        try:
            item = await self.model_cls._create(self.application, data)
        except AttributeError as e:
            # We can only create item if _create() model method implemented
            raise HTTPError(
                405,
                body=self.get_response(
                    errors=[
                        {
                            'code': '',
                            'message': 'Method not allowed',
                            'detail': str(e)
                        }
                    ]
                )
            )
        except (peewee.IntegrityError, peewee.DataError) as e:
            raise HTTPError(
                400,
                body=self.get_response(
                    errors=[
                        {
                            'code': '',
                            'message': 'Invalid parameters',
                            'detail': str(e)
                        }
                    ]
                )
            )
        self.response(result=await self.serialize(item))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号