您好,登錄后才能下訂單哦!
如何在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>,它是一個<class '_io.BytesIO'> 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項目中實現一個圖片驗證碼功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。