阿语python4-2 美多商城v5.0验证码-图形验证码第3.1.3节 图形验证码后端逻辑

图形验证码后端逻辑

1. 准备captcha扩展包

阿语python4-2 美多商城v5.0验证码-图形验证码第3.1.3节 图形验证码后端逻辑_第1张图片

提示:captcha扩展包用于后端生成图形验证码

可能出现的错误

  • 报错原因:环境中没有Python处理图片的库:PIL

解决办法

  • 安装Python处理图片的库:pip install Pillow

阿语python4-2 美多商城v5.0验证码-图形验证码第3.1.3节 图形验证码后端逻辑_第2张图片

2. 准备Redis数据库

准备Redis的2号库存储验证码数据

"verify_code": { # 验证码
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/2",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    },

3. 图形验证码后端逻辑实现

class ImageCodeView(View):
    """图形验证码"""

    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')

阿语python4-2 美多商城v5.0验证码-图形验证码第3.1.4节图形验证码前端逻辑

1. Vue实现图形验证码展示

1.register.js

mounted(){
    // 生成图形验证码
    this.generate_image_code();
},
methods: {
    // 生成图形验证码
    generate_image_code(){
        // 生成UUID。generateUUID() : 封装在common.js文件中,需要提前引入
        this.uuid = generateUUID();
        // 拼接图形验证码请求地址
        this.image_code_url = "/image_codes/" + this.uuid + "/";
    },
    ......
}

2.register.html

  • 图形验证码 请填写图形验证码
  • 3.图形验证码展示和存储效果

    2. Vue实现图形验证码校验

    1.register.html

  • 图形验证码 [[ error_image_code_message ]]
  • 2.register.js

    check_image_code(){
        if(!this.image_code) {
            this.error_image_code_message = '请填写图片验证码';
            this.error_image_code = true;
        } else {
            this.error_image_code = false;
        }
    },
    

    3.图形验证码校验效果

    阿语python4-2 美多商城v5.0验证码-图形验证码第3.1.3节 图形验证码后端逻辑_第3张图片

    你可能感兴趣的:(html,数据可视化,web,atom,md5)