前端
Html:
<img v-bind:src="image_code_url" v-on:click="generate_image_code" alt="图形验证码">
Vue:
axios.get(
url, {responseType: 'json'}
).then(
response => {
this.image_code_url = 'data:image/jpeg;base64,' + response.data.image;
}
).catch(
error => {
console.log(error.response)
}
)
后端:
Django:
class ImageCodeView(View):
def get(self, request, uuid):
text, image = captcha.generate_captcha()
redis_conn = get_redis_connection('verify_code')
redis_conn.setex(f'img_{uuid}', constants.IMAGE_CODE_REDIS_EXPIRES, text)
image_base64 = base64.b64encode(image).decode()
json_ = {
'image': image_base64,
'text': text,
}
return JsonResponse(json_)