Heim >Backend-Entwicklung >Python-Tutorial >Einführung in die Methode zum Generieren von Bestätigungscodebildern in Python3 Pillow
In diesem Artikel wird hauptsächlich das Beispiel des Python3-Kissens zum Generieren eines einfachen Verifizierungscodebilds vorgestellt, das von großem praktischem Wert ist.
Verwenden Sie das Pillow-Modul von Python, um eine Verifizierung nach dem Zufallsprinzip zu generieren Codebilder und Auf Django-Projekt anwenden
Kissen installieren
$ pip3 install pillow
Bestätigungscodebild generieren
\vericode.py from PIL import Image,ImageDraw,ImageFont,ImageFilter import random #随机码 默认长度=1 def random_code(lenght=1): code = '' for char in range(lenght): code += chr(random.randint(65,90)) return code #随机颜色 默认颜色范围【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): #创建Image对象 image = Image.new('RGB',(width,height),(255,255,255)) #创建Font对象 font = ImageFont.truetype('Arial.ttf',32) #创建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
Anwendung
Schreiben Sie die Ansichtsfunktion unter der Django-Anwendung
\views.py from . import vericode.py from io import BytesIO from django.http import HttpResponse def 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')
Djangos Sitzung Wird hier verwendet, müssen Sie „django.contrib.sessions“ (standardmäßig hinzugefügt) in INSTALLED_APPS von Django Settings.py hinzufügen. Die
verify_code-Ansichtsfunktion fügt den Bestätigungscode zur Sitzung hinzu und sendet das Bestätigungscode-Bild an den Browser, wenn Senden Sie das Formular ansubmit_xxx (), rufen Sie zunächst den Bestätigungscode aus der Sitzung ab und vergleichen Sie ihn dann mit dem im Formular eingegebenen Bestätigungscode.
Hier sind nur einfache Anweisungen, die URL-Konfiguration und der Front-End-Code werden nicht angegeben.
Das obige ist der detaillierte Inhalt vonEinführung in die Methode zum Generieren von Bestätigungscodebildern in Python3 Pillow. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!