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

Django實(shí)現(xiàn)隨機(jī)圖形驗(yàn)證碼的示例

 更新時(shí)間:2020年10月15日 16:26:04   作者:日天達(dá)人  
這篇文章主要介紹了Django實(shí)現(xiàn)隨機(jī)圖形驗(yàn)證碼的示例,幫助大家更好的學(xué)習(xí)和使用django框架,感興趣的朋友可以了解下

實(shí)現(xiàn)效果:點(diǎn)擊右邊圖片驗(yàn)證碼會變

前端代碼:

<div class="container">
 <div class="row">
  <div class="col-md-6">
    <label for="yzm_id">驗(yàn)證碼:</label>
    <input type="text" class="form-control" id="yzm_id" placeholder="" name="yzm">
   </div>
  <div class="col-md-6">
    <img id='yzm_img_id' src="/yzm/" alt="" style="width: 260px;height: 40px">
  </div>
  </div>
 <div> 

后端代碼:

from PIL import Image,ImageDraw,ImageFont
from io import BytesIO,StringIO
#色彩的設(shè)置為(*,*,*),所以隨機(jī)返回三個(gè)數(shù)
def r_num(number):
 #number為2指的是背景顏色,把背景顏色和字體顏色分開,不然當(dāng)顏色一樣時(shí),不容易看到
 if number==2:
  return random.randint(0,128),random.randint(0,128),random.randint(0,128)
 #number==1指的是字體顏色,字體顏色深一些比較養(yǎng)眼
 if number == 1:
  return random.randint(128, 255), random.randint(128, 255), random.randint(128, 255)
def yzm(request):
 #創(chuàng)建一個(gè)Image對象,‘RGB'是顏色的模式。第二個(gè)參數(shù)是驗(yàn)證碼的大小。第三個(gè)參數(shù)是三個(gè)隨機(jī)數(shù),當(dāng)然也用英語單詞指定顏色,比如red,這里為了隨機(jī)性選擇了用三個(gè)數(shù)字
 yzm_img=Image.new("RGB",(260,40),r_num(1))
 #為yzm_img對象創(chuàng)建一個(gè)畫筆
 draw=ImageDraw.Draw(yzm_img)
 #指定字體的格式,ttf文件自己在網(wǎng)上下載,放入static文件夾中,40指的是字體的大小
 font=ImageFont.truetype('static/1.ttf',40)
 #存放驗(yàn)證碼
 code=''
 #循環(huán)5次,所以驗(yàn)證碼是5位
 for i in range(5):
  #隨機(jī)0到9的數(shù)字
  random_num=str(random.randint(0,9))
  #隨機(jī)65到90的數(shù)字,chr是把數(shù)字對比ASCLL碼表轉(zhuǎn)為字母。65到90是大寫字母
  random_up=str(chr(random.randint(65,90)))
  #同上,隨機(jī)小寫字母
  random_low=str(chr(random.randint(97,122)))
#從三個(gè)字符中隨機(jī)選取出一個(gè)  
 random_code=random.choice([random_num,random_up,random_low])
  #把字符寫入圖片。第一個(gè)參數(shù)(x,y),坐標(biāo),如果坐標(biāo)位置寫死,那么將會全部擠到一起,第二個(gè)參數(shù),指定寫入的字符。第三參數(shù)指定字符的格式
  draw.text((45*i,-5),random_code,r_num(2),font)
  code+=random_code
 io_obj=BytesIO()
 #把圖片存放到內(nèi)存空間中
 yzm_img.save(io_obj,'png')
 #給session中添加驗(yàn)證碼
 request.session['code']=code
 #返回二進(jìn)制數(shù)據(jù)
 return HttpResponse(io_obj.getvalue())

現(xiàn)在刷新就可以刷新驗(yàn)證碼了

還差點(diǎn)擊驗(yàn)證碼就能更換驗(yàn)證碼

前端腳本代碼:

這里這么寫是因?yàn)橹灰诘刂泛竺婕由献址?,那么就刷新圖片

 $('#yzm_img_id').click(function () {
  var path2 = $(this).attr('src');
  $(this).attr('src', path2 += '?')
 });

以上就是Django實(shí)現(xiàn)隨機(jī)圖形驗(yàn)證碼的示例的詳細(xì)內(nèi)容,更多關(guān)于Django 圖形驗(yàn)證碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python性能測試工具Locust安裝及使用

    Python性能測試工具Locust安裝及使用

    這篇文章主要介紹了Python性能測試工具Locust安裝及使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 最實(shí)用的20個(gè)python小技巧

    最實(shí)用的20個(gè)python小技巧

    大家好,本篇文章主要講的是最實(shí)用的20個(gè)python小技巧,感興趣的同學(xué)快來看一看吧,希望對你有幫助
    2021-11-11
  • pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道

    pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道

    今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python模塊學(xué)習(xí)之struct模塊詳解

    Python模塊學(xué)習(xí)之struct模塊詳解

    這篇文章主要介紹了Python模塊學(xué)習(xí)之struct模塊詳解,該模塊作用是完成Python數(shù)值和C語言結(jié)構(gòu)體的Python字符串形式間的轉(zhuǎn)換,這可以用于處理存儲在文件中或從網(wǎng)絡(luò)連接中存儲的二進(jìn)制數(shù)據(jù),以及其他數(shù)據(jù)源,需要的朋友可以參考下
    2023-07-07
  • python二進(jìn)制文件的轉(zhuǎn)譯詳解

    python二進(jìn)制文件的轉(zhuǎn)譯詳解

    這篇文章主要介紹了python二進(jìn)制文件的轉(zhuǎn)譯詳解的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 簡介二分查找算法與相關(guān)的Python實(shí)現(xiàn)示例

    簡介二分查找算法與相關(guān)的Python實(shí)現(xiàn)示例

    這篇文章主要介紹了二分查找算法與相關(guān)的Python實(shí)現(xiàn)示例,Binary Search同時(shí)也是算法學(xué)習(xí)當(dāng)中最基礎(chǔ)的知識,需要的朋友可以參考下
    2015-08-08
  • 詳解python tcp編程

    詳解python tcp編程

    這篇文章主要介紹了python tcp編程的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python tcp編程,感興趣的朋友可以了解下
    2020-08-08
  • Python圖形驗(yàn)證碼識別教程詳解

    Python圖形驗(yàn)證碼識別教程詳解

    這篇文章主要介紹了Python圖形驗(yàn)證碼識別,目前,許多網(wǎng)站采取各種各樣的措施來反爬蟲,其中一個(gè)措施便是使用驗(yàn)證碼。隨著技術(shù)的發(fā)展,驗(yàn)證碼的花樣越來越多。驗(yàn)證碼最初是幾個(gè)數(shù)字組合的簡單的圖形驗(yàn)證碼,后來加入了英文字母和混淆曲線
    2023-02-02
  • python實(shí)現(xiàn)隨機(jī)調(diào)用一個(gè)瀏覽器打開網(wǎng)頁

    python實(shí)現(xiàn)隨機(jī)調(diào)用一個(gè)瀏覽器打開網(wǎng)頁

    下面小編就為大家分享一篇python實(shí)現(xiàn)隨機(jī)調(diào)用一個(gè)瀏覽器打開網(wǎng)頁,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python實(shí)現(xiàn)與redis交互操作詳解

    python實(shí)現(xiàn)與redis交互操作詳解

    這篇文章主要介紹了python實(shí)現(xiàn)與redis交互操作,結(jié)合實(shí)例形式分析了Python Redis模塊的安裝、導(dǎo)入、連接與簡單操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-04-04

最新評論

大埔区| 固阳县| 中西区| 湛江市| 卢氏县| 临猗县| 黔西县| 阿尔山市| 屏边| 靖安县| 日喀则市| 永顺县| 塔河县| 田阳县| 交口县| 慈利县| 江陵县| 雅安市| 花莲县| 临湘市| 吉林省| 谷城县| 石河子市| 万州区| 涞水县| 将乐县| 新源县| 芜湖县| 阳西县| 华坪县| 新河县| 青浦区| 诏安县| 汕尾市| 揭西县| 吴旗县| 辽宁省| 许昌县| 桑植县| 南乐县| 沙洋县|