图形验证码

Posted 小董懊恼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图形验证码相关的知识,希望对你有一定的参考价值。

图形验证码

在settings中配置连接reids

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        }
    }
}

先新建一个文件夹 utils 在文件夹建一个comm.py 文件

在comm.py 文件中 封装 一个连接redis的方法

from django_redis import get_redis_connection
def get_redis_conn():
    conn = get_redis_connection()
    return conn

utils文件夹中放入captcha包

在views中 写图形验证码接口

from utils.captcha.captcha import captcha
class ImageCode(APIView):
    # 图像验证
    def get(self,request):
        uuid = request.GET.get('uuid')
        name,text,imagecode = captcha.generate_captcha()
        conn = get_redis_conn()
        # 图形验证码存储在redis里面 设置过期时间为1分钟
        conn.setex(uuid,60,text)
        # 以图片形式输入
        return HttpResponse(imagecode,content_type='image/jpg')

在vue中调用接口展示图形验证码

<template>
	<div>
        <input type="text" name="pic_code" id="pic_code" class="msg_input">
        <img :src="changeimage" alt="图形验证码" class="pic_code" @click="getImage">
    </div>
</template>
<script>
import axios from 'axios'
import {v4 as uuid4} from 'uuid'
export default{
    data(){
        return {
            image:'',
            changeimage:'',
        }
    },
    methods:{
        getImage(){
            this.image = uuid4()
            this.changeimage = 'http://127.0.0.1:8000/user/imagecode/?uuid='+this.image
        },
    },
    created(){
        this.getImage()
    }
}
</script>
<style>

</style>

captcha包下载地址
提取码是:mp9p

以上是关于图形验证码的主要内容,如果未能解决你的问题,请参考以下文章

验证码识别——图形验证码

MVC中生成图形验证码并显示(极简)

MVC中生成图形验证码并显示(极简)

20行 Python 代码实现验证码识别

PHP 图形验证码

简单二十行Python代码实现验证码识别技术!