1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| import uuid import random from captcha.image import ImageCaptcha from io import BytesIO import redis
r = redis.Redis(host='127.0.0.1', port=6379, password='',decode_responses=True)
def random_code(num=4): str__a_z = [chr(num) for num in range(97, 123)] str__A_Z = [chr(num) for num in range(65, 91)] num_0_9 = [str(num) for num in range(0, 10)] return ''.join(random.sample(str__a_z + str__A_Z + num_0_9, num))
def make_verify_image(code_str, uuid=None): r.set(uuid, code_str, 60) img = ImageCaptcha().generate_image(code_str) out = BytesIO() img.save(out, 'jpeg') return out.getvalue()
generate_image_code() { axios({ url:this.base_url + 'userapp/uuid/', }).then(res=>{ console.log(res.data) this.uuid = res.data this.image_code_url = this.base_url +"userapp/" + 'tupian/' + this.uuid +'/' }) }, UUId() { axios({ url:this.base_url + 'userapp/uuid/', }).then(res=>{ console.log(res.data) this.uuid = res.data this.image_code_url = this.base_url +"userapp/" + 'tupian/' + this.uuid +'/' }) }, jc() { axios({ url:this.base_url + 'userapp/xy/', method:'post', data:{'uuid':this.uuid,'code':this.check} }).then(res=>{ console.log(res.data) if(res.data.code == 200) { this.check_img = true this.error_image_code = res.data.msg } if(res.data.code==500) { this.check_img = false this.error_image_code = res.data.msg } }) },
class GenerateUUID(APIView): def get(self, request): rt = random_code() return Response(str(uuid.uuid1()))
class Generateimg(APIView): ''' 返回前端验证码图片 '''
def get(self, request, uuid): code = random_code() image = make_verify_image(code, uuid) return HttpResponse(image, content_type='image/jpeg')
|