Beispiel #1
0
 def post(self, request):
     ret = Response_msg()
     try:
         username = request.data.get('username')
         password = request.data.get('password')
         # valid_code=request.data.get('valid_code')
         # if valid_code.upper() != request.session.get('valid_code'):
         #     raise MyError('300','验证码不正确')
         user_isexit = models.UserInfo.objects.filter(username=username)
         if not user_isexit:
             raise MyError('300', '账户不正确')
         user = auth.authenticate(username=username, password=password)
         if user:
             auth.login(request, user)
         else:
             raise MyError('300', '密码不正确')
         #登录成功,返回用户数据
         user_obj = models.UserInfo.objects.filter(
             username=username).first()
         user_detail = models.UserDetail.objects.filter(
             user=user_obj).first()
         us = UserDetailSerializer(user_detail)
         ret.data = us.data
     except MyError as e:
         ret.code = e.code
         ret.error = e.msg
     # except Exception as e:
     #         ret.code=200
     #         ret.error='数据库异常'
     return Response(ret.dict)
Beispiel #2
0
 def list(self, request, *args, **kwargs):
     ret = Response_msg()
     try:
         # 获取前端传过来的数值
         username = kwargs.get('username')
         article_id = kwargs.get('pk')
         # 从数据库匹配用户还有文章是否正确
         user = models.UserInfo.objects.filter(username=username).first()
         if user:
             article = models.Article.objects.filter(
                 user=user, nid=article_id).first()
             if article:
                 data = ArticleSerializer(article)
                 user_tags = models.Tag.objects.filter(user=user).values(
                     'nid', 'title')
                 blog_category = models.Category.objects.annotate(
                     category_count=Count('article__nid')).values()
                 ret.data = {
                     'article_data': data.data,
                     'all_tags': user_tags,
                     'all_category': blog_category
                 }
             else:
                 raise MyError('404')
         else:
             raise MyError('404')
     except MyError as e:
         ret.code = e.code
     # except Exception as e:
     #     ret.code=200
     #     ret.error='数据库异常'
     return Response(ret.dict)
Beispiel #3
0
    def create(self, request, *args, **kwargs):
        ret = Response_msg()
        try:
            # 验证用户是否正确
            vaild = vaild_user(request, kwargs.get('username'),
                               request.session.get('_auth_user_id'))
            user = vaild.valid()

            content = request.data.get('content')
            tags_list = request.data.get('tags')  #[1,2]
            category_list = request.data.get('category')
            title = request.data.get('title')
            desc = request.data.get('desc')
            with transaction.atomic():

                new_article = models.Article.objects.create(title=title,
                                                            desc=desc,
                                                            user=user)
                new_article.tags.add(*tags_list)
                new_article.category.add(*category_list)

                models.ArticleDetail.objects.create(content=content,
                                                    article=new_article)

        except MyError as e:
            ret.code = e.code
            ret.error = e.msg
        # except Exception as e:
        #     pass
        return Response(ret.dict)
Beispiel #4
0
 def create(self, request, *args, **kwargs):
     ret = Response_msg()
     try:
         user_id = request.data.get('user_id')
         # 当前用户的id,评论者
         article_id = request.data.get('article_id')
         content = request.data.get('content')
         parent_id = request.data.get('parent_id')
         print(user_id, article_id, content, parent_id)
         user = models.UserInfo.objects.filter(nid=user_id).first()
         if not user:
             raise MyError('300', '没有这个人')
         with transaction.atomic():
             # 创建评论
             if not parent_id:
                 models.Comment.objects.create(user=user,
                                               content=content,
                                               article_id=article_id)
             else:
                 models.Comment.objects.create(user=user,
                                               content=content,
                                               article_id=article_id,
                                               parent_comment_id=parent_id)
             # 评论数+1
             models.Article.objects.filter(nid=article_id).update(
                 comment_count=F('comment_count') + 1)
     except MyError as e:
         ret.code = e.code
         ret.error = e.msg
     # except Exception as  e:
     #     pass
     return Response(ret.dict)
Beispiel #5
0
 def destroy(self, request, *args, **kwargs):
     ret = Response_msg()
     try:
         # 验证用户是否正确
         vaild = vaild_user(request, kwargs.get('username'),
                            request.session.get('_auth_user_id'))
         user = vaild.valid()
         # 判断该文章是否存在
         article_id = kwargs.get('pk')
         article_obj = models.Article.objects.filter(
             user=user, nid=article_id).first()
         if not article_obj:
             raise MyError('300', '没有这个文章')
         article_obj.delete()
     except MyError as e:
         ret.code = e.code
         ret.error = e.msg
     # except Exception as e:
     #     pass
     return Response(ret.dict)
Beispiel #6
0
    def list(self, request, *args, **kwargs):
        ret = Response_msg()
        try:
            book_list = models.Article.objects.all().order_by('create_time')
            mp = MyPagePagination()  # 实例化一个分页器对象
            article_page = mp.paginate_queryset(book_list, request, self)
            data = ArticleSimpleSerializer(article_page,
                                           many=True,
                                           context={"request": request})
            # 获取全部的博客分类,每个分类下的文章数
            blog_category = models.Category.objects.annotate(
                category_count=Count('article__nid')).values()

            ret.data = {
                'all_article_list': data.data,
                'all_category': blog_category
            }
        except Exception as e:
            ret.code = '200'
            ret.error = '数据库异常'
        return Response(ret.dict)
Beispiel #7
0
 def destroy(self, request, *args, **kwargs):
     ret = Response_msg()
     try:
         # 验证用户是否正确
         vaild = vaild_user(request, kwargs.get('username'),
                            request.session.get('_auth_user_id'))
         user = vaild.valid()
         # 判断这个评论是否存在,获取文章id,评论id
         article_id = kwargs.get('article_pk')
         comment_id = kwargs.get('comment_pk')
         comment_obj = models.Comment.objects.filter(
             article_id=article_id, nid=comment_id).first()
         print(comment_obj, 'sasas')
         if not comment_obj:
             raise MyError('300', 'gun1,不存在')
         comment_obj.is_delete = 1
         comment_obj.save()
     except MyError as e:
         ret.code = e.code
         ret.error = e.msg
     return Response(ret.dict)
    def post(self, request):
        ret = Response_msg()
        username = request.data.get('username')
        password = request.data.get('password')
        phone = request.data.get('phone')
        try:
            # 判断用户是否已存在
            user_isexist = models.UserInfo.objects.filter(username=username)
            if user_isexist:
                raise MyError(101, '用户已存在')
            # 判断手机号是否存在
            phone_isexist = models.UserDetail.objects.filter(phone=phone)
            if phone_isexist:
                raise MyError(102, '手机号已存在')
            # 获取传过来的文件
            avatars = request.FILES.get('avatars')
            with transaction.atomic():
                user = models.UserInfo.objects.create_user(username=username,
                                                           password=password)
                if not avatars:
                    models.UserDetail.objects.create(user=user, phone=phone)
                else:
                    models.UserDetail.objects.create(user=user,
                                                     phone=phone,
                                                     avatars=avatars,
                                                     user_avatars=1)

            # # 创建每个用户专属的token
            # import uuid
            # token = uuid.uuid1()
            # models.Token.objects.create(token=token, user=user)
        except MyError as e:
            ret.code = e.code
            ret.error = e.msg
        # except Exception as  e:
        #     ret.code = 200
        #     ret.error = '数据库异常'
        return Response(ret.dict)
Beispiel #9
0
    def update(self, request, *args, **kwargs):
        ret = Response_msg()
        try:
            # 验证用户是否正确
            vaild = vaild_user(request, kwargs.get('username'),
                               request.session.get('_auth_user_id'))
            user = vaild.valid()

            article_id = kwargs.get('pk')
            content = request.data.get('content')
            tags_list = request.data.get('tags')  #[1,2]
            category_list = request.data.get('category')
            title = request.data.get('title')
            desc = request.data.get('desc')
            with transaction.atomic():
                article_obj = models.Article.objects.filter(nid=article_id,
                                                            user=user).first()
                if not article_obj:
                    raise MyError('300', '找不到该文章')
                article_detail = models.ArticleDetail.objects.filter(
                    article_id=article_obj.nid).first()
                # 更新数据
                article_detail.content = content
                article_obj.title = title
                article_obj.desc = desc
                article_obj.tags = tags_list
                article_obj.category = category_list
                article_obj.save()
                article_detail.save()
        except MyError as e:
            ret.code = e.code
            ret.error = e.msg
        except Exception as e:
            ret.code = '200'
            ret.error = '数据库异常'
        return Response(ret.dict)
Beispiel #10
0
 def get(self, request):
     ret = Response_msg()
     auth.logout(request)
     return Response(ret.dict)