先在虚拟机中或者(windows中)虚拟环境下创建库,然后在Django中创建app模组,笔者在这里创建的是user模组。然后在文件中创建templates文件。再创建一个存储html文件的文件夹:
第一步:在数据库中创建表:
class YanZhengMa(models.Model):
yanzhengma = models.CharField(max_length=4)
def __str__(self):
return self.objects
然后进行迁移操作。
第二步:在views文件中敲入产生随机数字图片
def yanzhengmashengcheng(request):
# 返回随机数字
# def numRandom():
# return random.randint(0, 9)
# 随机颜色
# def colorRandom1():
# return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
# 随机长生颜色2
# def colorRandom2():
# return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
width = 60 * 4
height = 60
image = Image.new('RGB', (width, height), (255, 255, 255))
# 创建font对象
font = ImageFont.truetype('/home/python/Downloads/pycharm-2017.3.4/jre64/lib/fonts/ARIAL.TTF', 36)
# 创建draw对象
draw = ImageDraw.Draw(image)
# 填充每一个颜色
for x in range(width):
for y in range(height):
draw.point((x, y), fill=(random.randint(64, 255), random.randint(64, 255), random.randint(64, 255)))
b=''
# 输出文字
for t in range(4):
a=chr((random.randint(65, 90)))
b+=a
draw.text((60 * t + 10, 10), a, font=font, fill=(random.randint(32, 127), random.randint(32, 127), random.randint(32, 127)))
# 模糊
new_yanzhengma = YanZhengMa()
new_yanzhengma.password = b
new_yanzhengma.save()
# request.session['password'] = b
image = image.filter(ImageFilter.BLUR)
buf = io.BytesIO()
# 将图片保存在内存中,文件类型为png
image.save(buf, 'png')
# 将内存中的图片数据返回给客户端,MIME类型为图片png
return HttpResponse(buf.getvalue(), 'image/png')
第三步:创建调用html程序:
def yanzhengma(request):
return render(request,'yanzhengma.html')
第四步:去templates文件下的yanzhengma.html文件创建页面格式:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
function refresh_check_code(ths) {
ths.src += '?';
{#src后面加问好会自动刷新验证码img的src#}
}
</script>
</head>
<body>
<img src="/yanzhengmashengcheng" onclick="refresh_check_code(this)">
<form method="get" action="/yanzhengmayanzheng" class="yanzhengma">
<ul>
<li>
<input type="text" name="password" >
</li>
<li>
<input type="submit" value="提交" class="sub">
</li>
</ul>
</form>
</body>
</html>
第五步:然后获得页面的请求:
def yanzhengmayanzheng(request):
if request.method == ‘GET’:
parm = request.GET
print(parm)
password_get= parm.get(‘password’)
print(password_get)
# a= YanZhengMa.objects.get(password=password_get)
# a=request.session.get(‘password’,’错误’)
try:
a = YanZhengMa.objects.get(password=password_get)
if a :
# request.session.flush()
return HttpResponse(‘ok’)
except:
return HttpResponse(‘false’)
然后进行验证。