zoukankan      html  css  js  c++  java
  • Django和Vue的图片验证码

    先下载配置:

      pip install pillow
      pip install django-redis==4.12.1
    

    在从网上找一个字体的包:

    (我也想把这个包分享出来,但是我现在能力有限我也不会啊)

    settings.py:

      FONTS_DIRS =  os.path.join(BASE_DIR, 'fonts',)   # 找到字体文件的路径
      CACHES = {
          "default": {
              "BACKEND": 'django_redis.cache.RedisCache',
              "LOCATION": "redis://127.0.0.1:6379/0",
              "OPTIONS": {
                  "CLIENT_CLASS": 'django_redis.client.DefaultClient',
              }
          },
            # session放在1号库
          "session": {
              "BACKEND": 'django_redis.cache.RedisCache',
              "LOCATION": "redis://127.0.0.1:6379/1",
              "OPTIONS": {
                  "CLIENT_CLASS": 'django_redis.client.DefaultClient',
              }
          },
          "img_code": {
              "BACKEND": 'django_redis.cache.RedisCache',
              "LOCATION": "redis://127.0.0.1:6379/2",
              "OPTIONS": {
                  "CLIENT_CLASS": 'django_redis.client.DefaultClient',
              }
          }
      }
    
      SESSION_ENGINE = "django.contrib.sessions.backends.cache"
      SESSION_CACHE_ALLAS = "session"
    

    views:

    from django.http import HttpResponse, HttpResponseForbidden
    from django.views import View
    from django_redis import get_redis_connection
    from libs.captcha.captcha import captcha
    
    
    class ImageCodeView(View):
        def get(self, request):
            uuid = request.GET.get('uuid')
            # 2.校验数据
            if not uuid:
                return HttpResponseForbidden('uuid⽆效')
    
        # 3.处理业务
        # 获取图⽚⽂本内容和图⽚⼆进制代码
            text, image = captcha.generate_captcha()  # text=GPMZ; image=图⽚
        # 4.把uuid和图⽚⽂本存⼊redis
            redis_client = get_redis_connection('img_code')  # 获取redis客户端
    
        # 5.写⼊redis(是字符串)
            redis_client.setex(uuid, 60 * 5, text)
        # 6.返回响应图⽚
            return HttpResponse(image, content_type='image/jpg')
    

    然后自己配置一个路径就可以用了,
    上面代码可以直接复制

  • 相关阅读:
    url中的特殊字符问题
    Gridview中几个Button的应用
    Asp.net中static变量和viewstate的使用方法(谨慎)
    my97DatePicker选择年、季度、月、周、日
    Server.MapPath()
    asp.net(C#)读取文件夹和子文件夹下所有文件,绑定到GRIDVIEW并排序 .
    sql union和union all的用法及效率
    asp.net 字符串替换、截取和从字符串中最后某个字符 开始截取
    ASP.NET
    sql中查询中的when...then 语句
  • 原文地址:https://www.cnblogs.com/kaka007/p/13935400.html
Copyright © 2011-2022 走看看