如何在django项目中实现一个图片验证码功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都网站建设哪家好,找创新互联建站!专注于网页设计、网站建设公司、微信开发、成都小程序开发、集团企业网站设计等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都搬家公司等众多领域,积累了大量丰富的经验,同时也获得了客户的一致赞许!创建一个captcha_image.py:
from captcha.image import ImageCaptcha import random class Captcha_Get(): def __init__(self, CHAR_SET = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], CAPTCHA_LEN = 4): self.CHAR_SET = CHAR_SET self.CAPTCHA_LEN = CAPTCHA_LEN def get_captcha(self): captcha_list = [] for i in range(self.CAPTCHA_LEN): random_choice = random.choice(self.CHAR_SET) captcha_list.append(random_choice) return captcha_list def get_captcha_image(self): image = ImageCaptcha() captcha_list = self.get_captcha()#返回一个列表 captcha_str = ''.join(captcha_list)#将列表的所有内容整合成一个字符串 captcha_image = image.generate(captcha_str) #captcha_image返回<_io.BytesIO object at 0x000001C8758C8728>,它是一个return captcha_str,captcha_image#因为要和django登陆相结合所以验证码的内容也要返回
然后,创建django项目
python-admin startproject mysite
创建app
python manage.py startapp app
在setting文件下注册app,写好urls,将captcha_image文件放入app目录下
views.py:
from django.http import JsonResponse,HttpResponse from .captcha_image import * def auth_code_port(request): """ 生成验证码的接口 :param request: :return: 图片的对象 """ captcha_str, image_64 = Captcha_Get().get_captcha_image() #request.session['captcha_str'] = captcha_str #将验证码内容放入session以便于后边判断,但必须迁移数据库,否则报错 #image = 'data:image/png;base64,'+image_64 resp = HttpResponse(image_64, content_type='image/png') return resp
看完上述内容,你们掌握如何在django项目中实现一个图片验证码功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。