使用Django實(shí)現(xiàn)商城驗(yàn)證碼模塊的方法
本文主要涉及圖形驗(yàn)證碼的相關(guān)功能,主要包括,圖形驗(yàn)證碼獲取、驗(yàn)證碼文字存儲(chǔ)、驗(yàn)證碼生成等。
圖形驗(yàn)證碼接口設(shè)計(jì)和定義
驗(yàn)證碼獲取接口設(shè)計(jì)
uuid作為路徑參數(shù),唯一標(biāo)識(shí)驗(yàn)證碼所屬用戶
新建應(yīng)用
驗(yàn)證碼的相關(guān)邏輯我們用一個(gè)單獨(dú)的app處理,所以這里需要新建一個(gè)叫verifications的app,建好app后,打開views.py視圖文件,編寫一個(gè)驗(yàn)證碼的視圖類
class ImageCodeView(View): """圖形驗(yàn)證碼""" def get(self, request, uuid): """ :param request: 請(qǐng)求對(duì)象 :param uuid: 唯一標(biāo)識(shí)圖形驗(yàn)證碼所屬于的用戶 :return: image/jpg """ pass
然后配置路由
項(xiàng)目路由配置:
path('', include('apps.verifications.urls')),
配置app的路由
path('image_codes/``uuid:uuid``/', views.ImageCodeView.as_view()),
驗(yàn)證碼處理相關(guān)準(zhǔn)備工作
準(zhǔn)備captcha擴(kuò)展包
把captcha擴(kuò)展包放到verifications的lib目錄下,然后需要安裝Python的圖片處理庫(kù),pip install Pillow
準(zhǔn)備Redis數(shù)據(jù)庫(kù)
redis用來(lái)存儲(chǔ)圖片驗(yàn)證碼上的數(shù)字,后面會(huì)用來(lái)做校驗(yàn)
"verify_code": { # 驗(yàn)證碼 "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/2", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } },
圖形驗(yàn)證碼后端邏輯實(shí)現(xiàn)
class ImageCodeView(View): """圖形驗(yàn)證碼 """ def get(self, request, uuid): """ 實(shí)現(xiàn)圖形驗(yàn)證碼邏輯 :param uuid: UUID :return: image/jpg """ # 生成圖形驗(yàn)證碼 text, image = captcha.generate_captcha() # 保存圖形驗(yàn)證碼 # 使用配置的redis數(shù)據(jù)庫(kù)的別名,創(chuàng)建連接到redis的對(duì)象 redis_conn = get_redis_connection('verify_code') # 使用連接到redis的對(duì)象去操作數(shù)據(jù)存儲(chǔ)到redis # redis_conn.set('key', 'value') # 因?yàn)闆]有有效期 # 圖形驗(yàn)證碼必須要有有效期的:設(shè)計(jì)是300秒有效期 # redis_conn.setex('key', '過(guò)期時(shí)間', 'value') redis_conn.setex('img_%s' % uuid, 300, text) # 響應(yīng)圖形驗(yàn)證碼: image/jpg return http.HttpResponse(image, content_type='image/jpg')
圖形驗(yàn)證碼前端邏輯
Vue實(shí)現(xiàn)圖形驗(yàn)證碼展示
1.register.js
mounted(){ // 生成圖形驗(yàn)證碼 this.generate_image_code(); }, methods: { // 生成圖形驗(yàn)證碼 generate_image_code(){ // 生成UUID。generateUUID() : 封裝在common.js文件中,需要提前引入 this.uuid = generateUUID(); // 拼接圖形驗(yàn)證碼請(qǐng)求地址 this.image_code_url = "/image_codes/" + this.uuid + "/"; }, ...... }
2.register.html
<li> <label>圖形驗(yàn)證碼:</label> <input type="text" name="image_code" id="pic_code" class="msg_input"> <img :src="image_code_url" @click="generate_image_code" alt="圖形驗(yàn)證碼" class="pic_code"> <span class="error_tip">請(qǐng)?zhí)顚憟D形驗(yàn)證碼</span> </li>
3.圖形驗(yàn)證碼展示和存儲(chǔ)效果
Vue實(shí)現(xiàn)圖形驗(yàn)證碼校驗(yàn)
1.register.html
<li> <label>圖形驗(yàn)證碼:</label> <input type="text" v-model="image_code" @blur="check_image_code" name="image_code" id="pic_code" class="msg_input"> <img :src="image_code_url" @click="generate_image_code" alt="圖形驗(yàn)證碼" class="pic_code"> <span class="error_tip" v-show="error_image_code">[[ error_image_code_message ]]</span> </li>
2.register.js
check_image_code(){ if(!this.image_code) { this.error_image_code_message = '請(qǐng)?zhí)顚憟D片驗(yàn)證碼'; this.error_image_code = true; } else { this.error_image_code = false; } },
3.圖形驗(yàn)證碼校驗(yàn)效果
至此驗(yàn)證碼部分就說(shuō)完了
到此這篇關(guān)于使用Django實(shí)現(xiàn)商城驗(yàn)證碼模塊的方法的文章就介紹到這了,更多相關(guān)Django 商城驗(yàn)證碼模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python基于similarities實(shí)現(xiàn)文本語(yǔ)義相似度計(jì)算和文本匹配搜索
similarities?實(shí)現(xiàn)了多種相似度計(jì)算、匹配搜索算法,支持文本、圖像,python3開發(fā),下面我們就來(lái)看看如何使用similarities實(shí)現(xiàn)文本語(yǔ)義相似度計(jì)算和文本匹配搜索吧2024-03-03探索Python數(shù)據(jù)可視化庫(kù)中Plotly Express的使用方法
在數(shù)據(jù)分析和可視化領(lǐng)域,數(shù)據(jù)的有效呈現(xiàn)是至關(guān)重要的,python作為一種強(qiáng)大的編程語(yǔ)言,提供了多種數(shù)據(jù)可視化工具和庫(kù),本文將介紹Plotly Express的基本概念和使用方法,幫助讀者快速入門并掌握數(shù)據(jù)可視化的技巧2023-06-06Python import與from import使用和區(qū)別解讀
Python程序可以調(diào)用一組基本的函數(shù)(即內(nèi)建函數(shù)),比如print()、input()和len()等函數(shù)。接下來(lái)通過(guò)本文給大家介紹Python import與from import使用及區(qū)別介紹,感興趣的朋友一起看看吧2021-09-09基于Python實(shí)現(xiàn)繪制簡(jiǎn)單動(dòng)圖的示例詳解
動(dòng)畫是一種高效的可視化工具,能夠提升用戶的吸引力和視覺體驗(yàn),有助于以富有意義的方式呈現(xiàn)數(shù)據(jù)可視化,本文的主要介紹在Python中兩種簡(jiǎn)單制作動(dòng)圖的方法,需要的可以了解下2023-10-10python Jupyter運(yùn)行時(shí)間實(shí)例過(guò)程解析
這篇文章主要介紹了python Jupyter運(yùn)行時(shí)間實(shí)例過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12