django 验证码图片生成视图函数
def verify_code(request):
import random
# 定义验证码图片背景颜色 宽和高
bgcolor = (random.randrange(20,180),random.randrange(20,180),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 = 'AQZSWRFEVCBGTHYNUMJKILOP123456789zxcbansdfqwyehrjtpk' # 随机选取4个值为验证码 或者6个值,不过图片宽和高,书写文字的间隔需要另外修改设置
rand_str = ''
for i in range(0,4):
rand_str += str1[random.randrange(0,len(str1))] # 构造字体对象
font = ImageFont.truetype('static/font/verdana.ttf',23)
# 字体颜色
def color():
fontcolor = (255,random.randrange(0,255),random.randrange(0,255))
return fontcolor
# 绘制4个字
draw.text((5 , 0), rand_str[0], font=font, fill=color())
draw.text((25, 0), rand_str[1], font=font, fill=color())
draw.text((50, 0), rand_str[2], font=font, fill=color())
draw.text((75, 0), rand_str[3], font=font, fill=color()) # 释放画笔
del draw # 存入session中 用于对比
request.session['verifycode'] = rand_str # 内存文件操作
buf = BytesIO() # 将图片保存在内存中,文件类型为png
im.save(buf,'png') # 将存放的图片返回给客户端 返回类型注意需要为图片
# print(buf)
# print(buf.getvalue())
return HttpResponse(buf.getvalue(),'image/png')
最终结果为
django 验证码图片生成视图函数的更多相关文章
- day 53-1 Django基础三之视图函数
Django基础三之视图函数 本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Dja ...
- day 67 Django基础三之视图函数
Django基础三之视图函数 本节目录 一 Django的视图函数view 二 CBV和FBV 三 使用Mixin 四 给视图加装饰器 五 Request对象 六 Response对象 一 Dja ...
- 验证码图片生成工具类——Captcha.java
验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. 源码如下:(点击下载 Captcha.java) import java. ...
- django重点url,视图函数,模板语言
django重点url,视图函数,模板语言url 1.django重点url无命名分组:re_path() 2.url第一个参:url未命别名分组就不需要views中参数一定,若命别名(?P<y ...
- Django基础三之视图函数
一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错 ...
- 03.Django基础三之视图函数
一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错 ...
- Django学习之 - 基础视图函数
视图:Views 获取用户请求的方法: 1: request.GET 2: request.POST 3: request.FILES # checkbox 等多选文件 4:request.POST. ...
- Django之views.py视图函数学习
视图函数: 视图函数时存在django项目中的应用程的一个名为views.py的文件模块: 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 一 ...
- .Net中验证码图片生成
开发网站或平台系统,登录页面是必不可少的功能,但是现在很多人可以使用工具暴力破解网站密码,为了防止这类非法操作,需要在登录页面添加验证,验证码就是最常用的一种验证方式. 我结合了自己的经验和网上的验证 ...
随机推荐
- MOOC(9)- 登录接口返回的cookie中有多个token
- Angular开发者指南(六)作用域
什么是作用域? 作用域是引用应用程序模型的对象. 它是表达式的执行上下文. 作用域以层次结构排列,模仿应用程序的DOM结构,它可以观察表达式和传播事件. 作用域的特征 Scope提供API($watc ...
- deeplearning.ai 神经网络和深度学习 week4 深层神经网络
1. 计算深度神经网络的时候,尽量向量化数据,不要用for循环.唯一用for循环的地方是依次在每一层做计算. 2. 最常用的检查代码是否有错的方法是检查算法中矩阵的维度. 正向传播: 对于单个样本,第 ...
- [LC] 252. Meeting Rooms
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si ...
- LeetCode Day 12
LeetCode0024 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表. 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换. 示例: 给定 1->2->3-> ...
- keep pace with |sixes and sevens.|Three dozen of |setting out|in despite of|appetite for|brought up|.turn to|leave behind|As can be seen|every
Heavy but not excessive: network capacity seems to have done little more than keep pace with economi ...
- Java Timer和TimerTask
Timer是JDK中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的任务,可以指定一次或多次. TimerTask是一个实现了Runnable接口的抽象类,代表一个可被执行的任 ...
- zookeeper ACL(access control lists)权限控制
基本作用: 针对节点可以设置 相关读写等权限,目的为了保障数据安全性 权限permissions可以制定不同的权限范围以及角色 一:ACL构成 zk的acl ...
- 腾讯玩O2O手机维修 巨头入局引市场大变
巨头入局引市场大变" title="腾讯玩O2O手机维修 巨头入局引市场大变"> 对于"游击队"或初创企业来说,最怕的就是巨头的杀入. ...
- Python知识点总结及其介绍链接
Python 弱引用(不会增加引用计数的引用,可以用来做对象缓存,避免循环引用导致内存无法回收):http://python.jobbole.com/85431/ from future import ...