国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Django實現隨機圖形驗證碼的示例

瀏覽:11日期:2024-09-20 14:15:35

實現效果:點擊右邊圖片驗證碼會變

Django實現隨機圖形驗證碼的示例

前端代碼:

<div class='container'> <div class='row'> <div class='col-md-6'> <label for='yzm_id'>驗證碼:</label> <input type='text' placeholder='' name='yzm'> </div> <div class='col-md-6'> <img id=’yzm_img_id’ src='https://rkxy.com.cn/yzm/' alt='' style='width: 260px;height: 40px'> </div> </div> <div>

后端代碼:

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

現在刷新就可以刷新驗證碼了

還差點擊驗證碼就能更換驗證碼

前端腳本代碼:

這里這么寫是因為只要在地址后面加上字符,那么就刷新圖片

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

以上就是Django實現隨機圖形驗證碼的示例的詳細內容,更多關于Django 圖形驗證碼的資料請關注好吧啦網其它相關文章!

標簽: Django
相關文章:
主站蜘蛛池模板: 汤原县| 鞍山市| 襄城县| 永和县| 陇川县| 布尔津县| 绥宁县| 黄石市| 福州市| 进贤县| 昌乐县| 鲁山县| 彰化市| 岐山县| 鹰潭市| 称多县| 长汀县| 射洪县| 江口县| 玉田县| 定兴县| 宣化县| 邮箱| 桦南县| 金山区| 泰州市| 深泽县| 阿合奇县| 沈阳市| 阿合奇县| 保靖县| 开原市| 景谷| 潍坊市| 台中县| 四子王旗| 惠水县| 离岛区| 怀安县| 锡林浩特市| 德惠市|