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)
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)
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)
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)
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)
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)
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)
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)
def get(self, request): ret = Response_msg() auth.logout(request) return Response(ret.dict)