django中的圖片驗證碼功能
python的驗證碼庫(captcha)
將驗證碼做成這樣:
是不是和各大網(wǎng)頁的圖片源地址是一樣,話不多說,讓我們看代碼:
我是用django和python中的captcha庫做成 的
創(chuàng)建一個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)#將列表的所有內(nèi)容整合成一個字符串 captcha_image = image.generate(captcha_str) #captcha_image返回<_io.BytesIO object at 0x000001C8758C8728>,它是一個<class '_io.BytesIO'> return captcha_str,captcha_image#因為要和django登陸相結(jié)合所以驗證碼的內(nèi)容也要返回
然后,創(chuàng)建django項目
python-admin startproject mysite
創(chuàng)建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 #將驗證碼內(nèi)容放入session以便于后邊判斷,但必須遷移數(shù)據(jù)庫,否則報錯 #image = 'data:image/png;base64,'+image_64 resp = HttpResponse(image_64, content_type='image/png') return resp
讓我測試一下驗證碼接口是否正確:運行django項目,然后在網(wǎng)頁上輸入127.0.0.1:8000/app/auth_code_port
這樣就好了,在前端模板中就可以直接調(diào)用接口。
總結(jié)
以上所述是小編給大家介紹的django中的圖片驗證碼功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
告別網(wǎng)頁搜索!教你用python實現(xiàn)一款屬于自己的翻譯詞典軟件
教你用python做一款屬于自己的翻譯詞典軟件,從此告別網(wǎng)頁搜索,文中有非常詳細(xì)的代碼示例,小伙伴們快快行動吧,需要的朋友可以參考下2021-06-06Python實現(xiàn)的對本地host127.0.0.1主機進行掃描端口功能示例
這篇文章主要介紹了Python實現(xiàn)的對本地host127.0.0.1主機進行掃描端口功能,可實現(xiàn)掃描本機開放端口的功能,涉及Python socket模塊與Thread多線程模塊相關(guān)使用技巧,需要的朋友可以參考下2019-02-02pytorch和tensorflow計算Flops和params的詳細(xì)過程
這篇文章主要介紹了pytorch和tensorflow計算Flops和params,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08Python學(xué)習(xí)筆記之Python的下載、腳本與交互模式、注釋
這篇文章主要介紹了Python學(xué)習(xí)筆記之Python的下載、腳本與交互模式、注釋,本文從基礎(chǔ)開始學(xué)習(xí)Python,需要的朋友可以參考下2023-03-03使用Fabric自動化部署Django項目的實現(xiàn)
這篇文章主要介紹了使用Fabric自動化部署Django項目的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09