这里讲讲在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(一)验证码的更多相关文章

  1. django生成验证码

    django生成验证码 # 制作验证码 def verify_code(): # 1,定义变量,用于画面的背景色.宽.高 # random.randrange(20, 100)意思是在20到100之间 ...

  2. Django之验证码 + session 认证

    验证码 + session认证 目录结构 . └── project ├── app01 │   ├── admin.py │   ├── apps.py │   ├── __init__.py │  ...

  3. python django 实现验证码的功能

    我也是刚学Python  Django不久很多都不懂,所以我现在想一边学习一边记录下来然后大家一起讨论! 验证码功能一开始我在网上找了很多的demo但是我在模仿他们写的时候,发现在我的版本上根本就不能 ...

  4. Django之验证码

    一.自己生成验证码 二.极验科技互动验证码 使用前步骤:下载官网文件——pip install geetest——引入其封装的js模块 代码分为三段:生成验证码——显示验证码——验证验证码. from ...

  5. Django 生成验证码或二维码 pillow模块

    一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用.   PIL模块只支持到Python 2 ...

  6. Django Redis验证码 密码 session 实例

    1.settings CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCach ...

  7. django的验证码

    pip install Pillow==3.4.1在views.py中创建一个视图函数 from PIL import Image, ImageDraw, ImageFont from django. ...

  8. Django 之验证码实现

    1. django-simple-captcha 模块 安装 django-simple-captcha pip install django-simple-captcha pip install P ...

  9. Django中验证码的登录

    需求概述 一般登录页面或者其他页面都需要验证码的功能,那在Django中如何实现呢? 这基本就需要用到第三方模块了:pillow 还需要两个文件,一个是字体文件:Monaco.ttf,另一个是一个模块 ...

随机推荐

  1. codeforces431B

    Shower Line CodeForces - 431B Many students live in a dormitory. A dormitory is a whole new world of ...

  2. python中字典和json的区别

    python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转 定义 python中,json和dict非常类似,都是k ...

  3. 【题解】Hanoi双塔问题

    题目描述 给定A,B,C三根足够长的细柱,在A柱上放有2n个中间有空的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形).现要将这些圆盘移到C柱上, ...

  4. Django前端获取后端数据之前端自定义函数

    在写网站的时候遇到了一个问题: Django在后端向前端传数据时,多数会使用dict字典来传送多个数据,但前端只能遍历,没有一个用key取到value值的方法可以直接使用 如果作为一个list传递到前 ...

  5. Codeforces Round #411 div 2 D. Minimum number of steps

    D. Minimum number of steps time limit per test 1 second memory limit per test 256 megabytes input st ...

  6. 【 HDU1081 】 To The Max (最大子矩阵和)

    题目链接 Problem - 1081 题意 Given a two-dimensional array of positive and negative integers, a sub-rectan ...

  7. Linux 上传下载文件 [转]

    从服务器下载文件scp username@servername:/path/filename /tmp/local_destination例如:scp codinglog@192.168.0.101: ...

  8. 19+ JavaScript 常用的简写技巧

    博主说:对于任何基于 JavaScript 的开发人员来说,这绝对是一篇必读的文章,乃提升开发效率之神器也. 正文 js 1. 三元运算符 当你想用一行代码来写if...else语句的时候,使用三元操 ...

  9. android-support-v4.jar 免积分下载

    资源名称:android扩展插件 android-support-v4.jar 资源大小:137KB 上传日期:2012-10-08 资源积分:1 下载次数:136 电信下载地址:http://www ...

  10. ormlite 文档

    目录[-] A Fast, Simple, Typed ORM for .NET Download 8 flavours of OrmLite is on NuGet: Docs and Downlo ...