使用Django實現(xiàn)商城驗證碼模塊的方法
本文主要涉及圖形驗證碼的相關(guān)功能,主要包括,圖形驗證碼獲取、驗證碼文字存儲、驗證碼生成等。
圖形驗證碼接口設(shè)計和定義驗證碼獲取接口設(shè)計
uuid作為路徑參數(shù),唯一標識驗證碼所屬用戶
新建應(yīng)用驗證碼的相關(guān)邏輯我們用一個單獨的app處理,所以這里需要新建一個叫verifications的app,建好app后,打開views.py視圖文件,編寫一個驗證碼的視圖類
class ImageCodeView(View): '''圖形驗證碼''' def get(self, request, uuid):''':param request: 請求對象:param uuid: 唯一標識圖形驗證碼所屬于的用戶:return: image/jpg'''pass
然后配置路由
項目路由配置:
path(’’, include(’apps.verifications.urls’)),配置app的路由
path(’image_codes/``uuid:uuid``/’, views.ImageCodeView.as_view()),驗證碼處理相關(guān)準備工作
準備captcha擴展包
把captcha擴展包放到verifications的lib目錄下,然后需要安裝Python的圖片處理庫,pip install Pillow
準備Redis數(shù)據(jù)庫
redis用來存儲圖片驗證碼上的數(shù)字,后面會用來做校驗
'verify_code': { # 驗證碼'BACKEND': 'django_redis.cache.RedisCache','LOCATION': 'redis://127.0.0.1:6379/2','OPTIONS': { 'CLIENT_CLASS': 'django_redis.client.DefaultClient',} },
圖形驗證碼后端邏輯實現(xiàn)
class ImageCodeView(View): '''圖形驗證碼 ''' def get(self, request, uuid):'''實現(xiàn)圖形驗證碼邏輯:param uuid: UUID:return: image/jpg'''# 生成圖形驗證碼text, image = captcha.generate_captcha()# 保存圖形驗證碼# 使用配置的redis數(shù)據(jù)庫的別名,創(chuàng)建連接到redis的對象redis_conn = get_redis_connection(’verify_code’)# 使用連接到redis的對象去操作數(shù)據(jù)存儲到redis# redis_conn.set(’key’, ’value’) # 因為沒有有效期# 圖形驗證碼必須要有有效期的:設(shè)計是300秒有效期# redis_conn.setex(’key’, ’過期時間’, ’value’)redis_conn.setex(’img_%s’ % uuid, 300, text)# 響應(yīng)圖形驗證碼: image/jpgreturn http.HttpResponse(image, content_type=’image/jpg’)圖形驗證碼前端邏輯
Vue實現(xiàn)圖形驗證碼展示
1.register.js
mounted(){ // 生成圖形驗證碼 this.generate_image_code();},methods: { // 生成圖形驗證碼 generate_image_code(){// 生成UUID。generateUUID() : 封裝在common.js文件中,需要提前引入this.uuid = generateUUID();// 拼接圖形驗證碼請求地址this.image_code_url = '/image_codes/' + this.uuid + '/'; }, ......}
2.register.html
<li> <label>圖形驗證碼:</label> <input type='text' name='image_code' class='msg_input'> <img :src='http://www.lshqa.cn/bcjs/image_code_url' @click='generate_image_code' alt='圖形驗證碼' class='pic_code'> <span class='error_tip'>請?zhí)顚憟D形驗證碼</span></li>
3.圖形驗證碼展示和存儲效果
Vue實現(xiàn)圖形驗證碼校驗
1.register.html
<li> <label>圖形驗證碼:</label> <input type='text' v-model='image_code' @blur='check_image_code' name='image_code' class='msg_input'> <img :src='http://www.lshqa.cn/bcjs/image_code_url' @click='generate_image_code' alt='圖形驗證碼' class='pic_code'> <span 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 = ’請?zhí)顚憟D片驗證碼’;this.error_image_code = true; } else {this.error_image_code = false; }},
3.圖形驗證碼校驗效果
至此驗證碼部分就說完了
到此這篇關(guān)于使用Django實現(xiàn)商城驗證碼模塊的方法的文章就介紹到這了,更多相關(guān)Django 商城驗證碼模塊內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Java 3D的動畫展示(Part1-使用JMF)2. 解決docker與vmware的沖突問題3. IntelliJ IDEA設(shè)置自動提示功能快捷鍵的方法4. asp.net core應(yīng)用docke部署到centos7的全過程5. Python基于jieba, wordcloud庫生成中文詞云6. IntelliJ Idea 2020.1 正式發(fā)布,官方支持中文(必看)7. Django中的AutoField字段使用8. 刪除docker里建立容器的操作方法9. php相對路徑轉(zhuǎn)化成絕對路徑10. 簡體中文轉(zhuǎn)換為繁體中文的PHP函數(shù)
