每个网站的后台都会涉及一个必不可少的功能,那就是登录,有的登录可能只是简单的登录名和密码,但是为了丰富登陆页面和验证防止机器人脚本等登陆情况,程序员们设计了验证码登录,12.06的图片识别验证登录和B站的图片位置登录。
本人刚学习完成python ,就打算用python 来写一个验证码登录的一个小玩意,代码如下:
from django.http import HttpResponse
''' 验证码 '''
def valateCode(request):
import random
from PIL import Image,ImageDraw,ImageFont
from io import BytesIO
# 图片的宽高
width = 120
height = 50
#返回页面的验证码
result_txt = ''
# 自定义都有什么验证码
text = '1234567890'
# 获取颜色
def getBgColor():
return (random.randrange(255), random.randrange(255), random.randrange(255))
# 生成一个图片
img = Image.new('RGB', (width, height), getBgColor())
# 设置书画字体
font = ImageFont.truetype('C:/MyFiles/progress/Python/new_python/static/fonts/FZY3JW.TTF', 44)
# 制作画笔
draw = ImageDraw.Draw(img)
for item in range(4):
textIndex = text[random.randrange(len(text))]
textFontColor = getBgColor()
result_txt += textIndex
draw.text((item * 30, 5), textIndex, textFontColor, font)
# 制作噪点
for item in range(100):
draw.point((random.randrange(width), random.randrange(height)), getBgColor())
# 内存
buf = BytesIO()
img.save(buf, 'jpeg')
request.session["code"] = result_txt
return HttpResponse(buf.getvalue())
这个是Django的登陆页面前台代码:
valateCode 这个是django的一个urls的一个路由,指向上面的这个方法
<img src="{% url 'valateCode' %}" alt="">