django(一)验证码
这里讲讲在django中使用第三方插件验证码的流程。
一、 先安装pillow, 通过 python -m pip install pillow
二、安装完后,在官方网站上看操作过程。地址:pillow.readthedocs.io/en/
三、视图部分逻辑代码--
1、验证码部分 ( 注意:验证码要用全局变量来使得后期可以和输入的值进行验证)
def verifycode(request):
from PIL import Image, ImageDraw, ImageFont
import random #background
bgColor = (random.randrange(50,100),random.randrange(50,100),random.randrange(50,100)) #hight and length
width = 100
height = 25 #create a canvas
image = Image.new('RGB',(width,height),bgColor) #
#font = ImageFont.truetype('FreeMono.ttf',24)
#create a pen
draw = ImageDraw.Draw(image) #create a global empty string for verify code
global textTemp textTemp=''
#create char
for i in range(4):
textTemp1 = text[random.randrange(0, len(text))]
textTemp += textTemp1
draw.text((i*25,0) ,
#text[random.randrange(0,len(text))]
textTemp1 ,
(255,255,255),
)
request.session['code']=textTemp
#draw.text((0,0),text,(255,255,255)) #save
from io import BytesIO as StringIO
buf = StringIO()
image.save(buf,'png') #output to clinet return HttpResponse(buf.getvalue(),'image/png')
2、表格页面一的视图逻辑
def verifyTest1(request):
return render(request, 'booktest/verifyTest1.html')
3、验证输入的视图逻辑
def verifyTest2(request):
code = request.POST['code']
if( code == textTemp ):
return HttpResponse('You got it')
return HttpResponse('False')
四、创建模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<image src="/booktest/verifycode"></image><br>
<form action="verifyTest1" method="post">
{% csrf_token %}
<input type="text" name ="code1">
<input type="submit" name="submit">
</form>
</body>
</html>
#创建模板如果把 “form” 写成 “from” 就没法跳转了
五、创建url
url(r'^verifycode/$', views.verifycode),
url(r'^verifyTest1/$', views.verifyTest1),
url(r'^verifyTest2/$', views.verifyTest2)
六、效果

当输入的验证码错误,会返回“false”。 正确则返回“You got it.”
django(一)验证码的更多相关文章
- django生成验证码
django生成验证码 # 制作验证码 def verify_code(): # 1,定义变量,用于画面的背景色.宽.高 # random.randrange(20, 100)意思是在20到100之间 ...
- Django之验证码 + session 认证
验证码 + session认证 目录结构 . └── project ├── app01 │ ├── admin.py │ ├── apps.py │ ├── __init__.py │ ...
- python django 实现验证码的功能
我也是刚学Python Django不久很多都不懂,所以我现在想一边学习一边记录下来然后大家一起讨论! 验证码功能一开始我在网上找了很多的demo但是我在模仿他们写的时候,发现在我的版本上根本就不能 ...
- Django之验证码
一.自己生成验证码 二.极验科技互动验证码 使用前步骤:下载官网文件——pip install geetest——引入其封装的js模块 代码分为三段:生成验证码——显示验证码——验证验证码. from ...
- Django 生成验证码或二维码 pillow模块
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
- Django Redis验证码 密码 session 实例
1.settings CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCach ...
- django的验证码
pip install Pillow==3.4.1在views.py中创建一个视图函数 from PIL import Image, ImageDraw, ImageFont from django. ...
- Django 之验证码实现
1. django-simple-captcha 模块 安装 django-simple-captcha pip install django-simple-captcha pip install P ...
- Django中验证码的登录
需求概述 一般登录页面或者其他页面都需要验证码的功能,那在Django中如何实现呢? 这基本就需要用到第三方模块了:pillow 还需要两个文件,一个是字体文件:Monaco.ttf,另一个是一个模块 ...
随机推荐
- 认真学习Linux系统让你真的有收获
学习,最重要的是有一个认真的态度,熟话说,读书可以改变命运,以前觉得并不一定是这样,其实经历的多了才知道,事实确实如此.试想一个不会写字看书的人,他的生活该有多么无聊.读书容易,但读好书并不总是件容易 ...
- 【Sublime Text3】Package Control:Install Package不能使用解决方法
官网地址 https://packagecontrol.io/installation 报错内容 解决方法 https://packagecontrol.io/docs/troubleshoo ...
- JS通过键盘点击事件实现div移动
页面内容:文本框模拟键盘点击 div元素实现移动: <body> <textarea id="myarea"></textarea> < ...
- Codeforces Round #431 (Div. 2) B. Tell Your World
B. Tell Your World time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- PopupWindow 学习总结
http://wenku.baidu.com/link?url=d48Zr6m7XJq-2JagViGTtVhsvGNHoBg9bHJCbQUJSb5tjRPx9ecavBNlL71ywrT8josV ...
- 粉红色界面的vscode,程序媛的必备利器
vscode都是黑漆漆的界面,对于一个喜欢花花草草的程序媛来说,长时间对着这样的界面,简直是一种折磨啊 有的时候,也会不自觉的想要看看一些粉色的东西,毕竟有着单纯的少女心 今天看到了一篇博客,作者是自 ...
- Sublime Text3—常用插件Emmet
摘要 安装请看上一篇Sublime Text-安装,和sublime自带快捷键一起用,写html简直快的飞起. 下面整理的是常用的,完整的可看emmet官方文档. 一.生成标签 1.快速生成文档结构 ...
- 20145215《网络对抗》Exp6 信息搜集与漏洞扫描
20145215<网络对抗>Exp6 信息搜集与漏洞扫描 基础问题回答 哪些组织负责DNS,IP的管理? 全球根服务器均由美国政府授权的ICANN统一管理,负责全球的域名根服务器.DNS和 ...
- Linux下快速分区格式化大于2T磁盘存储
在生产环境中,我们会遇到分区大于2T的磁盘(比如:添加一个10TB的存储),由于MBR分区表只支持2T磁盘,所以大于2T的磁盘必须使用GPT分区表,而我们在做raid时会划分多个VD来进行装系统,但系 ...
- ADO.NET连接字符串大全
说明ADO.NET连接字符串:SQL Server,SQL Server 2005,ACCESS,Oracle,MySQL,Interbase,IBM DB2,Sybase,Informix,Ingr ...