Exemple #1
0
    def get(self, request, uuid):
        text, image = captcha.generate_captcha()

        redis_conn = get_redis_connection('verify_code')
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES, text)

        return http.HttpResponse(image, content_type='image/jpg')
Exemple #2
0
    def get(self, request):
        # 接收参数
        cur_uuid = request.GET.get('cur')
        pre_uuid = request.GET.get('pre')

        # 校验参数
        if not cur_uuid:
            return http.HttpResponseForbidden('参数不全')
        # 检验参数格式
        if not re.match(r'^\w{8}(-\w{4}){3}-\w{12}', cur_uuid):
            return http.HttpResponseForbidden('参数格式不正确')
        if pre_uuid and not re.match(r'^\w{8}(-\w{4}){3}-\w{12}', pre_uuid):
            return http.HttpResponseForbidden('参数格式不正确')
        # 生成验证码
        text, image = captcha.generate_captcha()
        logger.info('图形验证码是:%s' % text)
        # 将验证码保存到redis数据库中
        redis_conn = get_redis_connection('verify_code')
        try:
            # 删除之前的
            redis_conn.delete('ImageCode_' + pre_uuid)
            # 保存当前的
            redis_conn.setex('ImageCode_' + cur_uuid, constants.IMAGE_CODE_REDIS_EXPIRES, text)
        except Exception as e:
            logger.error(e)
            return http.HttpResponseServerError('生成图形验证码失败')
        else:
            return http.HttpResponse(image, content_type='image/jpg')
Exemple #3
0
    def get(self, request):

        # 1、接收参数
        cur_uuid = request.GET.get("cur")
        pre_uuid = request.GET.get("pre")

        # 2、校验参数
        if not cur_uuid:
            return http.HttpResponseForbidden("参数不全")

        #
        if not re.match(r"\w{8}(-\w{4}){3}-\w{12}", cur_uuid):
            return http.HttpResponseForbidden("参数格式不正确")

        if pre_uuid and not re.match(r"\w{8}(-\w{4}){3}-\w{12}", pre_uuid):
            return http.HttpResponseForbidden("参数格式不正确")

        # 3、生成验证码
        text, image = captcha.generate_captcha()
        logger.info("图片验证码是:%s" % text)

        # 4、将验证码保存到reids数据库
        redis_conn = get_redis_connection("verify_code")
        try:
            # 删除之前的
            redis_conn.delete('ImageCode_' + pre_uuid)
            # 保存当前的
            redis_conn.setex('ImageCode_' + cur_uuid,
                             constants.IMAGE_CODE_REDIS_EXPIRES, text)
        except Exception as e:
            logger.error(e)
            return http.HttpResponseServerError("生成图片验证码失败")
        else:
            return http.HttpResponse(image, content_type='image/jpg')
Exemple #4
0
 def get(self, request, uuid):
     """獲取圖形驗證碼"""
     # 生成圖形驗證碼
     text, image = captcha.generate_captcha()
     # 保存圖形驗證碼
     conn = get_redis_connection('verify_code')
     conn.setex('img_%s' % uuid, constants.IMAGE_CODE_EXPIRES, text)
     # 返回響應
     return HttpResponse(image, content_type='image/jpg')
Exemple #5
0
 def get(self, request, uuid):
     """
     :param uuid: 通用唯一识别码,用于唯一标识该图形验证码属于哪个用户的
     :return: image/jpg
     """
     text, image = captcha.generate_captcha()
     redis_conn = get_redis_connection('verify_code')
     redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                      text)
     return http.HttpResponse(image, content_type='image/jpg')
Exemple #6
0
    def get(self, request, uuid):
        """
        返回图形验证码图片,并在redis中保存验证码
        :params uuid:唯一标识,当前验证码所属用户
        :return image/jpg
        """
        text, image = captcha.generate_captcha()
        # 连接settings中配置的redis,用来保存图形验证码
        redis_conn = get_redis_connection('verify_code')
        redis_conn.setex("img_%s" % uuid, constants.IMAGE_CODE_REDIS_EXPIRES, text)

        return HttpResponse(image, content_type="image/jpg")
Exemple #7
0
 def get(self, request, uuid):
     """
     :param uuid: 通用唯一标识码
     :return: image/jpg
     """
     # 生成图形验证码
     text, image = captcha.generate_captcha()
     # 保持图形验证码
     redis_conn = get_redis_connection('verify_code')
     redis_conn.setex('img_%s' % uuid, 300, text)
     # 响应图形验证码
     return http.HttpResponse(image, content_type='image/jpg')
Exemple #8
0
    def get(self, request, uuid):
        # 接收参数
        # 调用captcha工具生成图形码和文字
        text, image = captcha.generate_captcha()

        # 链接redis,获取链接对象
        redis_conn = get_redis_connection('verify_code')

        # 利用链接对象保存数据到redis,用setex,因为set不能设置有效时间
        redis_conn.setex('img_%s' % uuid, 300, text)

        # 返回结果
        return http.HttpResponse(image, content_type='image/jpg')
Exemple #9
0
 def get(self, request, uuid):
     '''
     :param uuid:
     :return: 图形验证码
     '''
     # 生成图形验证码
     text, image = captcha.generate_captcha()
     # 连接redis数据库
     redis_connections = get_redis_connection("verifications")
     # 保存图形验证码到数据库
     redis_connections.setex("image_%s" % uuid, 300, text)
     # 返回响应
     # content_type 为返回的类型是什么
     return HttpResponse(image, content_type="image/jpg")
Exemple #10
0
 def get(self, request, uuid):
     '''
     :param request: 请求对象
     :param uuid: 唯一标识图形验证码所属的用户
     :return: 图形验证码
     '''
     # 实现主体业务逻辑: 生成,保存, 响应图形验证码
     # 生成图形验证码
     text, image = captcha.generate_captcha()
     print(text)
     # 保存图形验证码
     redis_conn = get_redis_connection('verify_code')
     redis_conn.setex('img_%s' % uuid, 300, text)
     # 响应图形验证码
     return http.HttpResponse(image, content_type='image/jpg')
Exemple #11
0
    def get(self, request, uuid):
        """
        :param request: 请求对象
        :param uuid: 唯一标识图形验证码所属于的用户
        :return: image/jpg
        """
        # 生成图片验证码
        text, image = captcha.generate_captcha()

        # 保存图片验证码
        redis_conn = get_redis_connection('verify_code')
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES, text)

        # 响应图片验证码
        return http.HttpResponse(image, content_type='image/jpg')
Exemple #12
0
    def get(self, request, uuid):
        # parm 通用唯一识别码,用于标识是哪个用户的
        # 接收参数 校验参数
        # 实现主体业务逻辑:生成、保存、响应图像验证码
        # 生成
        text, image = captcha.generate_captcha()

        # 保存
        redis_conn = get_redis_connection('verify_code')
        # redis_conn.setex('key','expires','value')
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                         text)

        # 响应结果
        return http.HttpResponse(image, content_type='image/jpg')
Exemple #13
0
 def get(self, request, uuid):
     """
     :param uuid: 通用唯一识别码,用于唯一标识该图形验证码属于哪个用户的
     :return: image/jpg
     """
     # 接收和校验参数
     # 实现主体业务逻辑: (生成、保存、响应图形验证码)
     # 1)生成图形验证码
     text, image = captcha.generate_captcha()
     # 2)保存图形验证码
     redis_conn = get_redis_connection("verify_code")
     redis_conn.setex("img_%s" % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                      text)
     # 3)响应图形验证码
     # 响应结果
     return http.HttpResponse(image, content_type='image/jpg')
Exemple #14
0
 def get(self, request, uuid):
     """
     :param request: 请求对象
     :param uuid: 唯一标识图形验证码所属于的用户
     :return: image/jpg
     """
     # 接受校验参数
     text, image = captcha.generate_captcha()
     # 实现主题业务逻辑,生成,保存,响应图形验证码
     redis_conn = get_redis_connection('verify_code')
     # 设置过期时间
     # redis.conn.setex(key值, 时间以秒为单位, value值)可以设置过期时间
     redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                      text)
     # 响应图形验证码
     return http.HttpResponse(image, content_type='image/jpg')
Exemple #15
0
 def get(self, request, uuid):
     '''
     :param request:
     :param uuid: 通用唯一识别码,用于唯一表示该图形验证吗属于哪个用户
     :return: image/jpg
     '''
     # 接收和校验参数
     # 实现主体业务逻辑: 生成,保存,响应图形验证码
     # 生成图形验证码
     text, image = captcha.generate_captcha()
     # 保存图形验证码
     redis_conn = get_redis_connection('verify_code')
     redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                      text)
     # 响应图形验证码
     return http.HttpResponse(image, content_type='image/jpg')
Exemple #16
0
 def get(self, request, uuid):
     # 1、提取参数
     # 2、校验参数
     # 3、业务数据处理——使用captcha生成图片验证码,写入redis、响应图片数据
     # 3.1、调用captcha生成图片和验证码
     text, image = captcha.generate_captcha()
     print("验证码:", text)
     # 3.2、把验证码写入redis
     # 约定格式:{ img_<uuid> : text }
     # get_redis_connection: 根据django的配置获取一个redis的链接对象
     conn = get_redis_connection('verify_code')
     conn.setex('img_%s' % uuid, 300, text)
     # 4、构建响应
     return HttpResponse(
         image,  # 图片数据,作为响应体数据
         content_type='image/jpeg')
Exemple #17
0
    def get(self, request, uuid):
        """
        :param request: 请求对象
        :param uuid: 唯一标识图形验证码属于用户
        :return: image/jpg
        """
        # 生成图片验证码 name唯一标识 text是校验码的文字,image是2进制图片
        name, text, image = captcha.generate_captcha()

        # 保存图片验证码, "verify_code"在setting中设定
        redis_conn = get_redis_connection("verify_code")
        # 第2个参数是有效时间
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES, text)

        # 响应图片验证码
        return HttpResponse(image, content_type='image/jpg')
Exemple #18
0
 def get(self, request, uuid):
     """
     :param request:
     :param uuid: 通用唯一识别码,用于唯一表示该图形验证码属于哪个用户的
     :return:
     """
     # 接受和校验参数
     # 实现主体业务逻辑:生成图形验证码,保存,响应图形验证码
     # 生成图形验证码
     text, image = captcha.generate_captcha()
     # 保存图片验证码
     redis_conn = get_redis_connection('verify_code')  # 找到dev中配置的redis库
     # 设置键为uuid,值为text,超时时间为300秒
     redis_conn.setex("img_%s" % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                      text)  # setex可以设置生存时间
     # 响应图片验证码
     return http.HttpResponse(image, content_type='image/jpg')
    def get(self, request, uuid):
        """
        :param uuid: 通用唯一识别码,用于唯一标识该图形验证码属于哪个用户的
        :return: image/jpg
        """
        # 实现主体业务逻辑:生成,保存,响应图形验证码
        # 生成图形验证码
        text, image = captcha.generate_captcha()

        # 保存图形验证码
        redis_conn = get_redis_connection('verify_code')
        # redis_conn.setex('key', 'expires', 'value')
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                         text)

        # 响应图形验证码
        return http.HttpResponse(image, content_type='image/jpg')
Exemple #20
0
    def get(self, request, uuid):
        """
        :parms uuid: 通用唯一识别码,用于唯一标识该图形验证码属于哪个用户的
        :return: image/jpg
        """
        # 接收和校验参数(uuid)
        # 主体业务逻辑
        # 1. 生成图形验证码(captcha)
        text, image = captcha.generate_captcha()

        # 2. 保存图形验证码(redis)
        redis_conn = get_redis_connection('verify_code')
        redis_conn.setex("img_%s" % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                         text)

        # 响应结果(图形验证码)
        return http.HttpResponse(image, content_type='image/jpg')
Exemple #21
0
    def get(self, request, uuid):
        """

        :param request:  请求对象
        :param uuid: 通用唯一识别码,用于唯一标识该图形验证码属于哪个用户的
        :return: 数据类型 image/jpg
        """
        # 1.生成图片验证码
        text, image = captcha.generate_captcha()
        # 2. 保存图片验证码
        # 获取redis连接对象
        redis_conn = get_redis_connection('verify_code')
        # 使用redis_conn.setex('key'  'expires', 'value')
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE__REDIS_EXPIRES,
                         text)
        # 3 响应图片验证码
        return http.HttpResponse(image, content_type='image/jpg')
Exemple #22
0
    def get(self, request, uuid):
        """
        :param request:
        :param uuid: 通用唯一识别符
        :return: 验证码图片
        """
        # 生成验证码 和 图形验证码
        text, image = captcha.generate_captcha()
        # print(text, image)
        # 保存验证码 redis
        redis_conn = get_redis_connection('verify_code')
        # setex(self, name, time, value):
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                         text)

        # 响应图形验证码
        return http.HttpResponse(image, content_type='image/png')
    def get(self, request, uuid):
        """
        :param request: 请求对象
        :param uuid: 唯一标识图形验证码所属于的用户
        :return: image/jpg
        """
        # 生成图形验证码(图片、文字)
        text, image = captcha.generate_captcha()

        # 保存图形验证码(文字)
        redis_conn = get_redis_connection('verify_code')
        # redis_conn.set() 没有过期时间
        # redis_conn.setex('key', '过期时间', 'values')
        redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES, text)

        # 响应结果(图片)
        # return http.HttpResponse(响应体, content_type='数据类型')
        return http.HttpResponse(image, content_type='image/jpeg')
Exemple #24
0
 def get(self, request, uuid):
     """
     :param request: 请求对象
     :param uuid:唯一标识图形验证码所属与的用户
     :return: image/jpg
     """
     # 接受参数
     # 提取参数
     # 校验参数
     # 生成图形验证码
     text, image = captcha.generate_captcha()
     # 保存图形验证码,文字保存在redis
     redis_conn = get_redis_connection('verify_code')
     redis_conn.setex('img_%s' % uuid, constants.IMAGE_CODE_REDIS_EXPIRES,
                      text)
     logger.info('图形验证码:%s' % text)
     # 响应图形验证(图片)
     # HttpResponse(content=响应体, 表示返回的内容, content_type=响应体数据类型, status=状态码)
     return http.HttpResponse(image, content_type='image/jpg')
Exemple #25
0
 def get(self, request):
     """
     实现图形验证码逻辑
     :param uuid cur, pre
     :return image.jpg
     """
     # 1.获取参数
     cur = request.GET.get('cur')
     pre = request.GET.get('pre')
     # 2. 参数校验 TODO
     # 3. 业务逻辑处理
     # 生成图形验证码
     text, image = captcha.generate_captcha()
     # 保存图形验证码
     # 使用配置的redis数据库别名,创建连接到redis的对象
     redis_conn = get_redis_connection('verify_code')
     # 使用连接到redis的对象去操作数据存储到redis
     # 图形验证码必须要有有效期
     redis_conn.setex('img_%s'%cur, 300, text)
     # 响应图形验证码
     return HttpResponse(image, content_type='image/jpg')
Exemple #26
0
    def get(self, request):
        """
        获取图片验证码
        :param request:
        :return:
        """
        # 1、获取参数
        cur_uuid = request.GET.get("cur", "")
        pre_uuid = request.GET.get("pre", "")

        # 2、校验参数
        if not cur_uuid:
            return http.HttpResponseForbidden("参数不全")

        if not re.match(r"\w{8}(-\w{4}){3}-\w{12}", cur_uuid):
            return http.HttpResponseForbidden("参数格式不正确")

        if pre_uuid and not re.match(r"\w{8}(-\w{4}){3}-\w{12}", pre_uuid):
            return http.HttpResponseForbidden("参数格式不正确")

        # 3、生成验证码
        text, image = captcha.generate_captcha()
        logger.info("图片验证码是:%s" % text)

        # 4、将生成的验证码保存在redis中
        redis_conn = get_redis_connection("verify_code")
        try:
            # 删除原来的
            redis_conn.delete("ImageCode_" + pre_uuid)
            # 保存当前的
            redis_conn.setex("ImageCode_" + cur_uuid,
                             constants.IMAGE_CODE_REDIS_EXPIRES, text)
        except Exception as e:
            logger.error(e)
            return http.HttpResponseServerError("生成图片验证码错误")
        else:
            return http.HttpResponse(image, content_type="image/jpg")
Exemple #27
0
 def get(self, request, image):
     text, img = captcha.generate_captcha()
     redis_db = get_redis_connection("identified")
     redis_db.setex("img_%s" % image, 400, text)
     return http.HttpResponse(img, content_type="image/jpg")