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