佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 使用Django實現(xiàn)商城驗證碼模塊的方法

使用Django實現(xiàn)商城驗證碼模塊的方法

熱門標簽:網(wǎng)站文章發(fā)布 銀行業(yè)務 服務器配置 呼叫中心市場需求 智能手機 美圖手機 檢查注冊表項 鐵路電話系統(tǒng)

本文主要涉及圖形驗證碼的相關功能,主要包括,圖形驗證碼獲取、驗證碼文字存儲、驗證碼生成等。

圖形驗證碼接口設計和定義

 驗證碼獲取接口設計

uuid作為路徑參數(shù),唯一標識驗證碼所屬用戶

新建應用

驗證碼的相關邏輯我們用一個單獨的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()),

驗證碼處理相關準備工作

準備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') # 因為沒有有效期
        # 圖形驗證碼必須要有有效期的:設計是300秒有效期
        # redis_conn.setex('key', '過期時間', 'value')
        redis_conn.setex('img_%s' % uuid, 300, text)

        # 響應圖形驗證碼: image/jpg
        return 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" id="pic_code" class="msg_input">
    img :src="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" id="pic_code" class="msg_input">
    img :src="image_code_url" @click="generate_image_code" alt="圖形驗證碼" 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 = '請?zhí)顚憟D片驗證碼';
        this.error_image_code = true;
    } else {
        this.error_image_code = false;
    }
},

3.圖形驗證碼校驗效果

至此驗證碼部分就說完了

到此這篇關于使用Django實現(xiàn)商城驗證碼模塊的方法的文章就介紹到這了,更多相關Django 商城驗證碼模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django自定義插件實現(xiàn)網(wǎng)站登錄驗證碼功能
  • Django驗證碼的生成與使用示例
  • django 發(fā)送手機驗證碼的示例代碼
  • Django 生成登陸驗證碼代碼分享
  • Python 中Django驗證碼功能的實現(xiàn)代碼
  • Django框架登錄加上驗證碼校驗實現(xiàn)驗證功能示例
  • django項目登錄中使用圖片驗證碼的實現(xiàn)方法
  • 基于Django的python驗證碼(實例講解)

標簽:滄州 沈陽 上海 新疆 紅河 長治 樂山 河南

巨人網(wǎng)絡通訊聲明:本文標題《使用Django實現(xiàn)商城驗證碼模塊的方法》,本文關鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    蒙自县| 临清市| 泰顺县| 高雄县| 柳江县| 通辽市| 周口市| 平塘县| 平果县| 民权县| 林口县| 望江县| 莒南县| 通州区| 浦城县| 东安县| 府谷县| 安泽县| 金平| 牡丹江市| 舒城县| 民勤县| 延长县| 汽车| 榆林市| 睢宁县| 长海县| 顺义区| 中山市| 鄱阳县| 上思县| 龙江县| 深泽县| 涿州市| 辰溪县| 长武县| 高青县| 宣汉县| 玉门市| 土默特右旗| 潢川县|