国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python如何生成網頁驗證碼

2020-01-04 14:48:33
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python生成網頁驗證碼的具體代碼,供大家參考,具體內容如下

驗證碼為pil模塊生成,可直接應用于django框架當中。

首先需要安裝Pillow模塊 我們這里使用的版本為3.4.1 
終端中直接輸入指令 pip install Pillow==3.4.1

from PIL import Image, ImageDraw, ImageFontfrom django.utils.six import BytesIOdef verify_code(request):  #引入隨機函數模塊  import random  #定義變量,用于畫面的背景色、寬、高  bgcolor = (random.randrange(20, 100), random.randrange(    20, 100), 255)  width = 100  height = 25  #創建畫面對象  im = Image.new('RGB', (width, height), bgcolor)  #創建畫筆對象  draw = ImageDraw.Draw(im)  #調用畫筆的point()函數繪制噪點  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)  #定義驗證碼的備選值  str1 = 'ABCD123EFGHIJK456LMNOPQRS789TUVWXYZ0'  #隨機選取4個值作為驗證碼  rand_str = ''  for i in range(0, 4):    rand_str += str1[random.randrange(0, len(str1))]  #構造字體對象,ubuntu的字體路徑為“/usr/share/fonts/truetype/freefont”  font = ImageFont.truetype('FreeMono.ttf', 23)  #構造字體顏色  fontcolor = (255, random.randrange(0, 255), random.randrange(0, 255))  #繪制4個字  draw.text((5, 2), rand_str[0], font=font, fill=fontcolor)  draw.text((25, 2), rand_str[1], font=font, fill=fontcolor)  draw.text((50, 2), rand_str[2], font=font, fill=fontcolor)  draw.text((75, 2), rand_str[3], font=font, fill=fontcolor)  #釋放畫筆  del draw  #存入session,用于做進一步驗證  request.session['verifycode'] = rand_str  #內存文件操作  buf = BytesIO()  #將圖片保存在內存中,文件類型為png  im.save(buf, 'png')  #將內存中的圖片數據返回給客戶端,MIME類型為圖片png  return HttpResponse(buf.getvalue(), 'image/png'

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 紫阳县| 乌兰察布市| 安丘市| 双鸭山市| 凤冈县| 茶陵县| 巴彦淖尔市| 敖汉旗| 津市市| 平阴县| 泸定县| 砚山县| 金阳县| 阳朔县| 班玛县| 正定县| 运城市| 礼泉县| 青岛市| 梅河口市| 新蔡县| 伊吾县| 普宁市| 石楼县| 桂阳县| 翁牛特旗| 五原县| 敖汉旗| 克山县| 密山市| 高淳县| 洪泽县| 新河县| 永和县| 连山| 孟连| 濉溪县| 古浪县| 嘉荫县| 乌兰察布市| 云南省|