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

首頁 > 編程 > Python > 正文

python3 pillow生成簡單驗證碼圖片的示例

2020-01-04 16:46:13
字體:
供稿:網(wǎng)友

使用Python的pillow模塊 random 模塊隨機生成驗證碼圖片,并應(yīng)用到Django項目中

安裝pillow

$ pip3 install pillow

生成驗證碼圖片

/vericode.pyfrom PIL import Image,ImageDraw,ImageFont,ImageFilterimport random #隨機碼 默認(rèn)長度=1def random_code(lenght=1):    code = ''  for char in range(lenght):    code += chr(random.randint(65,90))  return code #隨機顏色 默認(rèn)顏色范圍【1,255】def random_color(s=1,e=255):  return (random.randint(s,e),random.randint(s,e),random.randint(s,e)) #生成驗證碼圖片 #length 驗證碼長度 #width 圖片寬度 #height 圖片高度 #返回驗證碼和圖片def veri_code(lenght=4,width=160,height=40):  #創(chuàng)建Image對象  image = Image.new('RGB',(width,height),(255,255,255))  #創(chuàng)建Font對象  font = ImageFont.truetype('Arial.ttf',32)  #創(chuàng)建Draw對象  draw = ImageDraw.Draw(image)  #隨機顏色填充每個像素  for x in range(width):    for y in range(height):      draw.point((x,y),fill=random_color(64,255))  #驗證碼  code = random_code(lenght)  #隨機顏色驗證碼寫到圖片上  for t in range(lenght):    draw.text((40*t+5,5),code[t],font=font,fill=random_color(32,127))  #模糊濾鏡  image = image.filter(ImageFilter.BLUR)  return code,image

應(yīng)用

編寫Django應(yīng)用下的視圖函數(shù)

/views.pyfrom . import vericode.pyfrom io import BytesIOfrom django.http import HttpResponsedef verify_code(request):  f = BytesIO()  code,image = vericode.veri_code()  image.save(f,'jpeg')  request.session['vericode'] = code  return HttpResponse(f.getvalue())def submit_xxx(request):  if request.method == "POST":    vericode = request.session.get("vericode").upper()    submitcode = request.POST.get("vericode").upper()    if submitcode == vericode:      return HttpResponse('ok')  return HttpResponse('error')

這里使用了Django的session,需要在Django settings.py的INSTALLED_APPS中添加'django.contrib.sessions'(默認(rèn)添加)
verify_code視圖函數(shù)將驗證碼添加到session中和驗證碼圖片一起發(fā)送給瀏覽器,當(dāng)提交表單到submit_xxx()時,先從session中獲取驗證碼,再對比從表單中的輸入的驗證碼。

這里只是簡單說明,url配置和前端代碼未給出。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 万山特区| 双城市| 伊春市| 永平县| 丽水市| 吉木萨尔县| 航空| 高雄县| 清涧县| 平阳县| 东方市| 新津县| 城固县| 望谟县| 兰西县| 蒙阴县| 五寨县| 泸水县| 葫芦岛市| 张北县| 临沧市| 榆社县| 洛川县| 吉首市| 清水县| 双鸭山市| 陆丰市| 宁河县| 蒙阴县| 扶沟县| 昭觉县| 大厂| 祁连县| 丰台区| 清河县| 甘谷县| 密山市| 隆子县| 安图县| 大化| 南昌县|