最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django框架登錄加上驗證碼校驗實現(xiàn)驗證功能示例

 更新時間:2019年05月23日 10:34:06   作者:SpecYue  
這篇文章主要介紹了Django框架登錄加上驗證碼校驗實現(xiàn)驗證功能,結(jié)合實例形式分析了Django框架基于Pillow模塊的圖形驗證碼生成與使用相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了Django框架登錄加上驗證碼校驗實現(xiàn)驗證功能。分享給大家供大家參考,具體如下:

驗證碼生成函數(shù)

pip install Pillow

# /verify_code
def verif_ycode(request):
  #引入繪圖模塊
  from PIL import Image, ImageDraw, ImageFont
  #引入隨機函數(shù)模塊
  import random
  #定義變量,用于畫面的背景色、寬、高
  bgcolor = (random.randrange(20, 100), random.randrange(
    20, 100), random.randrange(20, 100))
  width = 100
  height = 50
  #創(chuàng)建畫面對象
  im = Image.new('RGB', (width, height), bgcolor)
  #創(chuàng)建畫筆對象
  draw = ImageDraw.Draw(im)
  #調(diào)用畫筆的point()函數(shù)繪制噪點
  for i in range(0, 100):
    xy = (random.randrange(0, width), random.randrange(0, height))
    fill = (random.randrange(0, 255), 255, random.randrange(0, 255))
    draw.point(xy, fill=fill)
  #定義驗證碼的備選值
  str = '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'
  #隨機選取4個值作為驗證碼
  rand_str = ''
  for i in range(0, 4):
    rand_str += str[random.randrange(0, len(str))]
  #構(gòu)造字體對象
  # font = ImageFont.truetype('楷體', 40)
  #構(gòu)造字體顏色
  fontcolor1 = (255, random.randrange(0, 255), random.randrange(0, 255))
  fontcolor2 = (255, random.randrange(0, 255), random.randrange(0, 255))
  fontcolor3 = (255, random.randrange(0, 255), random.randrange(0, 255))
  fontcolor4 = (255, random.randrange(0, 255), random.randrange(0, 255))
  #繪制4個字
  draw.text((5, 2), rand_str[0], fill=fontcolor1)
  draw.text((25, 2), rand_str[1], fill=fontcolor2)
  draw.text((50, 2), rand_str[2], fill=fontcolor3)
  draw.text((75, 2), rand_str[3], fill=fontcolor4)
  #釋放畫筆
  del draw
  # 存入session,用于做進一步驗證
  request.session['verifycode'] = rand_str
  #內(nèi)存文件操作
  import io
  buf = io.BytesIO()
  #將圖片保存在內(nèi)存中,文件類型為png
  im.save(buf, 'png')
  #將內(nèi)存中的圖片數(shù)據(jù)返回給客戶端,MIME類型為圖片png
  return HttpResponse(buf.getvalue(), 'image/png')

login.html

html文件加上<img src="/verify_code" alt="">…當然這里還需要配置url,去urls.py里url(r'^verify_code$',views.verif_ycode),

login_check視圖函數(shù)里加上驗證碼校驗

首先拿到用戶輸入的驗證碼和def verif_ycode(request):函數(shù)保存在session中的驗證碼

# 獲取驗證碼
vcode1 = request.POST.get('vcode')# 用戶輸入的驗證碼
vcode2 = request.session.get('verifycode')# 獲取session中保存的驗證碼

判斷是否一樣,不一樣的話就redirct('/login')跳轉(zhuǎn)到登錄頁面

if vcode1 != vcode2:
  return redirect('/login')
else:

否則向下運行

希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。

相關(guān)文章

  • python轉(zhuǎn)換pkl模型文件為txt文件問題

    python轉(zhuǎn)換pkl模型文件為txt文件問題

    這篇文章主要介紹了python轉(zhuǎn)換pkl模型文件為txt文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python 中的 import 機制之實現(xiàn)遠程導(dǎo)入模塊

    Python 中的 import 機制之實現(xiàn)遠程導(dǎo)入模塊

    模塊導(dǎo)入( import ),是指在一個模塊中使用另一個模塊的代碼的操作,它有利于代碼的復(fù)用。這篇文章主要介紹了Python 的 import 機制:實現(xiàn)遠程導(dǎo)入模塊,需要的朋友可以參考下
    2019-10-10
  • 用python爬取電腦壁紙實例代碼

    用python爬取電腦壁紙實例代碼

    大家好,本篇文章主要講的是用python爬取電腦壁紙實例代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • 解決Django Static內(nèi)容不能加載顯示的問題

    解決Django Static內(nèi)容不能加載顯示的問題

    今天小編就為大家分享一篇解決Django Static內(nèi)容不能加載顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python3.x中安裝web.py步驟方法

    python3.x中安裝web.py步驟方法

    在本篇文章里小編給大家分享的是關(guān)于python3.x中安裝web.py步驟方法,需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • python mysql中in參數(shù)化說明

    python mysql中in參數(shù)化說明

    這篇文章主要介紹了python mysql中in參數(shù)化說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 基于Python制作GIF表情包生成工具

    基于Python制作GIF表情包生成工具

    在當前無表情包不會聊天的時代,怎么也不能輸在表情包數(shù)量不足上啊,今天咱們就來基于Python制作一個?gif?生成工具,用來制作表情包也太好用啦
    2023-07-07
  • Django REST Swagger實現(xiàn)指定api參數(shù)

    Django REST Swagger實現(xiàn)指定api參數(shù)

    這篇文章主要介紹了Django REST Swagger實現(xiàn)指定api參數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • python自動化測試selenium操作下拉列表實現(xiàn)

    python自動化測試selenium操作下拉列表實現(xiàn)

    這篇文章主要為大家介紹了python自動化測試selenium操作下拉列表實現(xiàn)方式,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-11-11
  • python中print格式化輸出的問題

    python中print格式化輸出的問題

    所謂格式化輸出,就是創(chuàng)建一個可以嵌入變量內(nèi)容的字符串。這篇文章主要介紹了python中print格式化輸出,需要的朋友可以參考下
    2021-04-04

最新評論

天水市| 张掖市| 简阳市| 孟连| 涿州市| 徐汇区| 太谷县| 汪清县| 扎鲁特旗| 衡南县| 景宁| 井冈山市| 石首市| 阿拉尔市| 察雅县| 黔江区| 长丰县| 唐河县| 商水县| 长汀县| 英超| 定陶县| 荥阳市| 岳普湖县| 白玉县| 灌云县| 安塞县| 江油市| 丰县| 视频| 河池市| 山东省| 台湾省| 连江县| 岳池县| 阳朔县| 台南市| 含山县| 会理县| 湖口县| 汉中市|