濮阳杆衣贸易有限公司

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

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

熱門標(biāo)簽:朝陽(yáng)手機(jī)外呼系統(tǒng) 小蘇云呼電話機(jī)器人 市場(chǎng)上的電銷機(jī)器人 所得系統(tǒng)電梯怎樣主板設(shè)置外呼 北京電銷外呼系統(tǒng)加盟 佛山400電話辦理 儋州電話機(jī)器人 地圖標(biāo)注面積 北瀚ai電銷機(jī)器人官網(wǎng)手機(jī)版

本文主要涉及圖形驗(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后,打開(kāi)views.py視圖文件,編寫(xiě)一個(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)闆](méi)有有效期
        # 圖形驗(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í)顚?xiě)圖形驗(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í)顚?xiě)圖片驗(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)文章希望大家以后多多支持腳本之家!

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

標(biāo)簽:寧夏 定西 商丘 江蘇 金融催收 龍巖 酒泉 云南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Django實(shí)現(xiàn)商城驗(yàn)證碼模塊的方法》,本文關(guān)鍵詞  使用,Django,實(shí)現(xiàn),商城,驗(yàn)證,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Django實(shí)現(xiàn)商城驗(yàn)證碼模塊的方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于使用Django實(shí)現(xiàn)商城驗(yàn)證碼模塊的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    宜兰县| 昭苏县| 钟山县| 安吉县| 开化县| 奉贤区| 若尔盖县| 怀集县| 南木林县| 获嘉县| 胶南市| 金昌市| 孟津县| 福泉市| 潞城市| 永寿县| 绥阳县| 巴塘县| 富顺县| 荣成市| 新乡县| 弋阳县| 绵竹市| 保山市| 当雄县| 古丈县| 长丰县| 容城县| 武城县| 新干县| 泰州市| 柯坪县| 怀集县| 瑞安市| 洛浦县| 宣恩县| 广东省| 黄梅县| 洮南市| 新泰市| 大竹县|