最新国产好看的视频,伊人天堂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

最新評論

兴国县| 长寿区| 兴安县| 吉隆县| 于田县| 新津县| 长宁区| 马关县| 孝昌县| 卓尼县| 防城港市| 新建县| 汤原县| 定安县| 于田县| 西丰县| 高密市| 黔西县| 肥东县| 仲巴县| 页游| 虹口区| 龙游县| 壤塘县| 江孜县| 正宁县| 台北县| 秀山| 呼和浩特市| 额尔古纳市| 新安县| 鹤山市| 繁峙县| 沛县| 太仆寺旗| 德惠市| 秀山| 建水县| 龙门县| 吉林市| 平定县|