Exemplo n.º 1
0
 def post(self, request):
     image_file = request.FILES.get('image_file', '')
     if not image_file:
         return to_json_data(errno=Code.PARAMERR, errmsg='未选择图片上传')
     if image_file.content_type not in [
             'image/jpeg', 'image/png', 'image/gif'
     ]:
         return to_json_data(errno=Code.PARAMERR, errmsg='不能上传非图片类型!')
     try:
         image_ext_name = image_file.name.split('.')[-1]
     except Exception as e:
         logger.info('获取图片扩展名异常:{}'.format(e))
         image_ext_name = 'jpg'
     # image_file.read():读取文件
     result = FDFS_Client.upload_by_buffer(image_file.read(),
                                           image_ext_name)
     if result['Status'] == 'Upload successed.':
         image_url = settings.FASTDFS_SERVER_DOMAIN + result[
             'Remote file_id']
         user = request.user
         user.avatar_url = image_url
         user.save(update_fields=['avatar_url'])
         return to_json_data(data={'image_url': image_url},
                             errmsg='图片上传成功!')
     else:
         logger.info('图片上传到FastDFS服务器失败')
         return to_json_data(errno=Code.UNKOWNERR, errmsg='上传图片到服务器失败!')
Exemplo n.º 2
0
 def delete(self, request, type_id):
     goods_type = models.GoodsType.objects.filter(id=type_id).first()
     if not goods_type:
         return to_json_data(errno=Code.PARAMERR, errmsg='要删除的商品种类不存在!')
     goods_type.is_delete = True
     goods_type.save()
     return to_json_data(errmsg='商品种类删除成功!')
Exemplo n.º 3
0
    def post(self, request):
        '''
        1 get value
        2 check value
        3  sava value to mysql/redis
        4 give info custom
        :param request:
        :return:
        '''
        json_data = request.body
        if not json_data:
            return to_json_data(errno=Code.PARAMERR,
                                errmsg=error_map[Code.PARAMERR])
        # 将json转化为dict
        dict_data = json.loads(json_data)  #.decode('utf8') 清除解码
        form = RegisterForm(data=dict_data)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            mobile = form.cleaned_data.get('mobile')

            user = User.objects.create_user(username=username,
                                            password=password,
                                            mobile=mobile)
            login(request, user)
            return to_json_data(errmsg="恭喜您,注册成功!")

        else:
            # 定义一个错误信息列表
            err_msg_list = []
            for item in form.errors.get_json_data().values():
                err_msg_list.append(item[0].get('message'))
            err_msg_str = '/'.join(err_msg_list)

            return to_json_data(errno=Code.PARAMERR, errmsg=err_msg_str)
Exemplo n.º 4
0
    def post(self, request):
        json_data = request.body
        if not json_data:
            return to_json_data(errno=Code.PARAMERR,
                                errmsg=error_map[Code.PARAMERR])
        # 将json转化为dict
        dict_data = json.loads(json_data.decode('utf8'))
        form = RegisterForm(data=dict_data)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')

            user = Users.objects.create_user(username=username,
                                             password=password)
            login(request, user)
            return to_json_data(errmsg="恭喜您,注册成功!")

        else:
            # 定义一个错误信息列表
            err_msg_list = []
            for item in form.errors.get_json_data().values():
                err_msg_list.append(item[0].get('message'))
            err_msg_str = '/'.join(err_msg_list)

            return to_json_data(errno=Code.PARAMERR, errmsg=err_msg_str)
Exemplo n.º 5
0
    def post(self, request):
        #  1. 获取参数
        json_data = request.body  # byte  str
        if not json_data:
            return to_json_data(errno=Code.PARAMERR,
                                errmsg=error_map[Code.PARAMERR])
        dict_data = json.loads(json_data.decode('utf8'))
        #  2. 校验参数
        form = RegisterForm(data=dict_data)
        if form.is_valid():
            #  3. 存入数据到数据
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')
            mobile = form.cleaned_data.get('mobile')

            user = Users.objects.create_user(username=username,
                                             password=password,
                                             mobile=mobile)
            login(request, user)
            #  4. 返回给前端
            return to_json_data(errmsg='恭喜您,注册成功!')
        else:
            # 定义一个错误信息列表
            err_msg_list = []
            for item in form.errors.get_json_data().values():
                err_msg_list.append(item[0].get('message'))
                # print(item[0].get('message'))   # for test
            err_msg_str = '/'.join(err_msg_list)  # 拼接错误信息为一个字符串

            return to_json_data(errno=Code.PARAMERR, errmsg=err_msg_str)
Exemplo n.º 6
0
 def post(self, request):
     """
     :param request:
     :return:
     """
     #2.获取前端数据
     json_data = request.body
     #print(json_data,type(json_data))
     #3.校验参数
     if not json_data:
         return to_json_data(errno=Code.PARAMERR,
                             errmsg=error_map[Code.PARAMERR])
     # 将json转化为dict
     dict_data = json.loads(json_data.decode('utf8'))  # 没有解码,会产生bug
     print(dict_data, type(dict_data))
     #4.用户登录,设置session
     form = LoginForm(data=dict_data, request=request)
     if form.is_valid():
         #5.返回前端
         return to_json_data(errmsg="恭喜您,登录成功!")
     else:
         # 定义一个错误信息列表
         err_msg_list = []
         for item in form.errors.get_json_data().values():
             err_msg_list.append(item[0].get('message'))
         err_msg_str = '/'.join(err_msg_list)  # 拼接错误信息为一个字符串
         return to_json_data(errno=Code.PARAMERR, errmsg=err_msg_str)
Exemplo n.º 7
0
 def post(self, request):
     text_file = request.FILES.get('text_file')
     if not text_file:
         return to_json_data(errno=Code.PARAMERR, errmsg='未选择文件上传')
     if text_file.content_type not in ('application/octet-stream',
                                       'application/pdf',
                                       'application/msword',
                                       'application/zip', 'text/plain',
                                       'application/x-rar'):
         return to_json_data(errno=Code.PARAMERR, errmsg='不能上传非文档类型的文件!')
     try:
         text_ext_name = text_file.name.split('.')[-1]
     except Exception as e:
         logger.info('获取文档扩展名异常:{}'.format(e))
         text_ext_name = 'jpg'
     try:
         result = FDFS_Client.upload_by_buffer(text_file.read(),
                                               text_ext_name)
     except Exception as e:
         logger.info('文档上传出现异常:{}'.format(e))
         return to_json_data(errno=Code.UNKOWNERR, errmsg='文档上传出现异常!')
     if result['Status'] == 'Upload successed.':
         text_url = settings.FASTDFS_SERVER_DOMAIN + result['Remote file_id']
         return to_json_data(data={'text_file': text_url}, errmsg='文档上传成功!')
     else:
         logger.info('文档上传到FastDFS服务器失败')
         return to_json_data(errno=Code.UNKOWNERR, errmsg='上传文档到服务器失败!')
Exemplo n.º 8
0
 def delete(self, request, tag_id):
     tag = models.Tag.objects.only('id').filter(id=tag_id).first()
     if tag:
         tag.delete()
         return to_json_data(errmsg='标签删除成功过')
     else:
         return to_json_data(errno=Code.PARAMERR, errmsg='标签不存在')
Exemplo n.º 9
0
 def delete(self, request, group_id):
     group = Group.objects.filter(id=group_id).first()
     if not group:
         return to_json_data(errno=Code.NODATA, errmsg='要删除的组不存在!')
     group.permissions.clear()
     group.delete()
     return to_json_data(errmsg='组删除成功!')
Exemplo n.º 10
0
 def post(self, request):
     json_data = request.POST
     if not json_data:
         return to_json_data(errno=Code.PARAMERR, errmsg="参数为空,请重新输入")
     if not request.POST.get('aggree'):
         return to_json_data(errno=Code.AGGREE,
                             errmsg=error_map[Code.AGGREE])
     use_key = ['username', "password", "password_repeat", "email"]
     dict_data = {}
     for i in use_key:
         dict_data[i] = request.POST.get(i)
     form = RegisterForm(data=dict_data)
     if form.is_valid():
         username = form.cleaned_data.get('username')
         password = form.cleaned_data.get('password')
         email = form.cleaned_data.get('email')
         user = User.objects.create(username=username,
                                    password=password,
                                    email=email)
         user.save()
         return render(request, 'login/index.html')
     else:
         # 定义一个错误信息列表
         err_msg_list = []
         for item in form.errors.get_json_data().values():
             err_msg_list.append(item[0].get('message'))
         err_msg_str = '/'.join(err_msg_list)
         return to_json_data(errno=Code.PARAMERR, errmsg=err_msg_str)
Exemplo n.º 11
0
 def delete(self, request, doc_id):
     doc = Docs.objects.filter(is_delete=False, id=doc_id).first()
     if not doc:
         return to_json_data(errno=Code.NODATA, errmsg='要删除的文档不存在!')
     doc.is_delete = True
     doc.save(update_fields=['is_delete', 'update_time'])
     return to_json_data(errmsg='文档删除成功!')
Exemplo n.º 12
0
 def get(self, request, phone):
     sms_num = ''.join(
         [random.choice(string.digits) for _ in range(SMS_CODE_NUM)])
     redis_conn = get_redis_connection('verify_codes')
     sms_key = 'sms_{}'.format(phone)
     sms_flag_key = 'sms_flag_{}'.format(phone)
     p1 = redis_conn.pipeline()
     try:
         p1.setex(sms_flag_key, 60, 1)
         p1.setex(sms_key, 300, sms_num)
         p1.execute()
     except Exception as e:
         logger.debug('redis执行异常: {}'.format(e))
         return to_json_data(errno=Code.UNKOWNERR, errmsg='redis执行异常')
     try:
         client = smsclient.ZhenziSmsClient(
             'https://sms_developer.zhenzikj.com', '101357',
             'bf00ccbc-1f60-4f1c-a739-ba9ec7f4872d')
         # result = client.send(mobile, '您的验证码为' + sms_num)
         # res = int(result[8])
         res = 0
     except Exception as e:
         logger.debug('短信验证码发送[异常]: {}'.format(e))
         return to_json_data(errno=Code.SMSERROR,
                             errmsg=error_map[Code.SMSERROR])
     else:
         if res == 0:
             logger.info('{}短信验证码发送[成功]: {}'.format(phone, sms_num))
             return to_json_data(errmsg='短信验证码发送成功')
         else:
             logger.debug('{}短信验证码发送[失败]: {}'.format(phone, sms_num))
             return to_json_data(errno=Code.SMSFAIL,
                                 errmsg=error_map[Code.SMSFAIL])
Exemplo n.º 13
0
 def delete(self, request, tag_id):
     tag = models.Tag.objects.filter(id=tag_id).first()
     if tag:
         tag.is_delete = True
         tag.save(update_fields=['is_delete'])
         return to_json_data(errmsg='标签删除成功!')
     else:
         return to_json_data(errno=Code.PARAMERR, errmsg='需要删除的标签不存在!')
Exemplo n.º 14
0
 def delete(self, request, course_id):
     course = Course.objects.only('id').filter(id=course_id,
                                               is_delete=False).first()
     if not course:
         return to_json_data(errno=Code.NODATA, errmsg='需要删除的视频不存在!')
     course.is_delete = True
     course.save(update_fields=['is_delete', 'update_time'])
     return to_json_data(errmsg='视频删除成功!')
Exemplo n.º 15
0
 def delete(self, request, banner_id):
     banner = models.Banner.objects.only('id').filter(id=banner_id).first()
     if banner:
         banner.is_delete = True
         banner.save(update_fields=['is_delete', 'update_time'])
         return to_json_data(errmsg='轮播图删除成功!')
     else:
         return to_json_data(errno=Code.NODATA, errmsg='要删除的轮播图不存在!')
Exemplo n.º 16
0
 def delete(self, request, news_id):
     news = models.News.objects.only('id').filter(id=news_id).first()
     if news:
         news.is_delete = True
         news.save(update_fields=['is_delete', 'update_time'])
         return to_json_data(errmsg='文章删除成功!')
     else:
         return to_json_data(errno=Code.NODATA, errmsg='要删除的文章不存在!')
Exemplo n.º 17
0
 def delete(self, request, user_id):
     user_instance = User.objects.filter(id=user_id).first()
     if not user_instance:
         return to_json_data(errno=Code.PARAMERR, errmsg='要删除的用户不存在!')
     user_instance.groups.clear()
     user_instance.user_permissions.clear()
     user_instance.is_active = False
     user_instance.save()
     return to_json_data(errmsg='用户删除成功!')
Exemplo n.º 18
0
 def delete(self, request, hotnews_id):
     hot_new = models.HotNews.objects.only('id').filter(
         id=hotnews_id).first()
     if hot_new:
         hot_new.is_delete = True
         hot_new.save(update_fields=['is_delete', 'update_time'])
         return to_json_data(errmsg='热门文章删除成功!')
     else:
         return to_json_data(errno=Code.PARAMERR, errmsg='要删除的热门文章不存在!')
Exemplo n.º 19
0
 def delete(self, request, hotnews_id):
     hotnews = models.HotNews.objects.only('id').filter(
         id=hotnews_id).first()
     if hotnews:
         hotnews.is_delete = True
         hotnews.save(update_fields=['is_delete'])
         return to_json_data(errmsg='删除成功')
     else:
         return to_json_data(errno=Code.PARAMERR, errmsg='需要更新的热门新闻不存在')
Exemplo n.º 20
0
 def post(self, request):
     video_file = request.FILES.get('video_file', '')
     if video_file.content_type != 'video/mp4':
         return to_json_data(errno=Code.PARAMERR, errmsg='视频类型错误!')
     video_name = video_file.name
     res = get_video_url(video_name)
     if res:
         return to_json_data(data={'video_url': res})
     else:
         return to_json_data(errno=Code.PARAMERR, errmsg='视频上传失败')
Exemplo n.º 21
0
 def delete(self, request, callections_id):
     tag = models.Callections.objects.only('id').filter(
         id=callections_id).first()
     if tag:
         # 真删
         # tag.delete()
         tag.is_delete = True
         tag.save(update_fields=['is_delete'])
         return to_json_data(errmsg="标签删除成功")
     else:
         return to_json_data(errno=Code.PARAMERR, errmsg="需要删除的标签不存在")
Exemplo n.º 22
0
 def post(self, request):
     json_data = request.body
     if not json_data:
         return to_json_data(errno=Code.PARAMERR,
                             errmsg=error_map[Code.PARAMERR])
     dict_data = json.loads(json_data.decode('utf8'))
     type_name = dict_data.get('title')
     logo = dict_data.get('logo')
     image_url = dict_data.get('image_url')
     if 'http://' not in image_url:
         return to_json_data(errno=Code.DATAERR, errmsg='图片地址错误!')
     models.GoodsType.objects.create(name=type_name,
                                     logo=logo,
                                     image_url=image_url)
     return to_json_data(errmsg='商品类型添加成功!')
Exemplo n.º 23
0
    def get(self, request, username):

        data = {
            'username': username,
            'count': Users.objects.filter(username=username).count()
        }
        return to_json_data(data=data)
Exemplo n.º 24
0
    def post(self,request,mobile):
        json_data = request.body
        if not json_data:
            return to_json_data(errno=Code.PARAMERR, errmsg=error_map[Code.PARAMERR])
        # 将json转化为dict
        dict_data = json.loads(json_data.decode('utf8'))
        useraccount = dict_data.get('username')
        user_tel = Users.objects.filter(Q(mobile=useraccount) | Q(username=useraccount)).first().mobile
        print(mobile,user_tel)
        count = Users.objects.filter(mobile=mobile).count()
        if count == 0:
            return to_json_data(errno=Code.NODATA,errmsg="号码不存在!")
        if mobile != user_tel:
            return to_json_data(errno=Code.DATAERR,errmsg="号码与注册时不同!")

        return to_json_data(errno=Code.OK,errmsg="手机验证通过!")
Exemplo n.º 25
0
 def get(self, request):
     focus_id = request.GET.get('focus_id', '')
     if not focus_id:
         return to_json_data(errno=Code.PARAMERR, errmsg='取关失败!')
     id_list = focus_id.split('-')
     user_id = int(id_list[0])
     author_id = int(id_list[1])
     follow_instance, is_create = Follow.objects.get_or_create(
         user_id=user_id, followed_id=author_id)
     follow_instance.status = False
     follow_instance.save()
     fans_instance, is_create = Fans.objects.get_or_create(
         user_id=author_id, follower_id=user_id)
     fans_instance.status = False
     fans_instance.save()
     return to_json_data(errmsg='取关成功!')
Exemplo n.º 26
0
 def post(self, request):
     json_data = request.body
     if not json_data:
         return to_json_data(errno=Code.PARAMERR,
                             errmsg=error_map[Code.PARAMERR])
     # 将json转化为dict
     dict_data = json.loads(json_data.decode('utf8'))
     tag_name = dict_data.get('name')
     if tag_name and tag_name.strip():
         tag_tuple = models.Callections.objects.get_or_create(name=tag_name)
         tag_instance, tag_created_bolean = tag_tuple
         new_tag_dict = {"id": tag_instance.id, "name": tag_instance.name}
         return to_json_data(errmsg="接口集创建成功", data=new_tag_dict) if tag_created_bolean else \
             to_json_data(errno=Code.DATAEXIST, errmsg="接口集名已存在")
     else:
         return to_json_data(errno=Code.PARAMERR, errmsg="接口集名为空")
Exemplo n.º 27
0
 def get(self, request, mobile):
     # 从数据库中查询是否存在这个手机号
     count = User.objects.filter(phone=mobile).count()
     # 构建数据字典
     data = {'count': count, 'mobile': mobile}
     # 返回json数据给前端
     return to_json_data(data=data)
Exemplo n.º 28
0
 def get(self, request, username):
     # 从数据库中查询是否存在这个用户名
     count = User.objects.filter(username=username).count()
     # 构建数据字典
     data = {'count': count, 'username': username}
     # 返回json数据给前端
     return to_json_data(data=data)
Exemplo n.º 29
0
    def get(self, request):
        # 2、校验参数
        try:
            tag_id = int(request.GET.get('tag_id', 0))
        except Exception as e:
            logger.error('标签错误,\n{}'.format(e))
            tag_id = 0
        try:
            page = int(request.GET.get('page', 1))
        except Exception as e:
            # 若用户访问的页数大于实际页数,则返回最后一页数据
            logger.error("当前页数错误:\n{}".format(e))
            page = 1

        # 3、从数据库中查询新闻列表数据
        news_queryset = models.News.objects.select_related('tag','author'). \
            only('title', 'digest', 'image_url', 'update_time', 'tag__name', 'author__username')
        # title , digest, image_url,update__time,author__name,tag__name

        # if models.Tag.objects.only('id').filter(is_delete=False,id=tag_id).exists():
        #     news = news_queryset.filter(is_delete=False,tag_id=tag_id)
        # else:
        #     news = news_queryset.filter(is_delete=False)

        news = news_queryset.filter(is_delete=False, tag_id=tag_id)or \
            news_queryset.filter(is_delete=False)

        paginator = Paginator(news, constants.PER_PAGE_NEWS_COUNT)
        try:
            news_info = paginator.page(page)
        except EmptyPage:
            # 若用户访问的页数大于实际页数,则返回最后一页数据
            logging.info("用户访问的页数大于总页数。")
            news_info = paginator.page(paginator.num_pages)

        # 序列化输出
        news_info_list = []
        for n in news_info:
            news_info_list.append({
                'id':
                n.id,
                'title':
                n.title,
                'digest':
                n.digest,
                'image_url':
                n.image_url,
                'tag_name':
                n.tag.name,
                'author':
                n.author.username,
                'update_time':
                n.update_time.strftime('%Y年%m月%d日 %H:%M'),
            })

        # 创建返回前端的数据
        data = {'total_pages': paginator.num_pages, 'news': news_info_list}

        return to_json_data(data=data)
Exemplo n.º 30
0
    def post(self, request):
        json_data = request.body
        if not json_data:
            return to_json_data(errno=Code.PARAMERR,
                                errmsg=error_map([Code.PARAMERR]))

        dict_data = json.loads(json_data.decode())

        tag_name = dict_data.get('name')
        if tag_name and tag_name.strip():
            tag_tuple = models.Tag.objects.get_or_create(name=tag_name)
            return to_json_data(
                errmsg='标签创建成功') if tag_tuple[-1] else to_json_data(
                    errno=Code.DATAEXIST, errmsg='标签已存在')

        else:
            return to_json_data(errno=Code.PARAMERR, errmsg='标签名为空')