django生成验证码

验证码生成依赖于PIL库。

生成验证码的代码如下:

def captcha(request):    width = 100    height = 40    bg_color = (255, 255, 255)    image = Image.new(‘RGB‘, (width, height), bg_color)    font = ImageFont.truetype(‘Arial.ttf‘, 30)    font_color = (0, 0, 0)    draw = ImageDraw.Draw(image)    captcha = ‘‘    alphabet = []    for i in range(48, 58):        alphabet.append(chr(i))    for i in range(97, 123):        alphabet.append(chr(i))    for i in range(65, 91):        alphabet.append(chr(i))    for i in range(4):        captcha += random.choice(alphabet)    draw.text((random.randint(0, 30), random.randint(0, 15)), captcha, font=font, fill=font_color)    del draw    new_image = image.transform((width + 20, height + 10), Image.AFFINE,                                (1, -0.3, random.randint(0, 10), -0.1, 1, random.randint(0, 10)))    new_draw = ImageDraw.Draw(new_image)    line_color = (0, 0, 0)    for i in range(0, 15):        x1 = random.randint(0, width)        x2 = random.randint(0, width)        y1 = random.randint(0, height)        y2 = random.randint(0, height)        new_draw.line([(x1, y1), (x2, y2)], line_color)    del new_draw    buffer = StringIO.StringIO()    new_image.save(buffer, ‘png‘)    request.session[‘captcha‘] = captcha    return HttpResponse(content=buffer.getvalue(), content_type="image/png")

那么,生成的验证码如何才能能显示在网页的img标签里?首先添加url:url(r‘^captcha‘, ‘login.captcha‘),然后将img的src指向改url就行了($(‘#img_captcha‘).attr(‘src‘, ‘captcha/‘ + Math.random()))。注意,通常我们在url后面加上随机数或者时间戳,来避免的浏览器缓存导致点击验证码时验证码不更新的问题。
时间: 2024-10-29 05:57:44

django生成验证码的相关文章

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

一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. ? PIL模块只支持到Python 2.7,许久没更新了,在python 3.* 版本上使用Pillow模块 ? 安装Pillow ? pip install pillow 二.pillow 基本使用 图像缩放 from PIL import Image # 当前路径打开一个jpg图像文件 img = Image.open('test.

7月2日 Django 生成验证码、

html页面里 {# 验证码 #} <div class="form-group " id="v-code-wrapper"> <label for="v_code_input">验证码</label> <input type="text" class="form-control" id="v_code_input" name="v_c

python+Django自己生成验证码

1.views.pyfrom django.shortcuts import render, HttpResponsefrom django.http import JsonResponse from django.contrib import authfrom PIL import Image, ImageDraw, ImageFontimport randomfrom io import BytesIO # Create your views here. # 自己生成验证码的登录 def l

随机生成验证码及python中的事务

1.随机生成验证码 # import random # print(random.random()) #0-1的小数 # print(random.randint(1,3)) #包括1和3 # print("--",random.randrange(1,3)) #不包括1和3 #随机生成四位验证码 import random checkcode = '' for i in range(4): current = random.randrange(0,4) if current != i

利用Pillow,几行代码实现的最简单的Django页面验证码功能

验证码本质上就是生成带有文字的图片,用来区分人与机器的行为.如果考虑到防止破解自然会涉及到许多复杂的算法,用以防止从图片中容易地识别出文字,但作为一个简单的例子,我们就使用最简单的方法来达成一个验证码的功能.以下就是利用Python的第三方图形处理模块Pillow来实现的一个简单的验证码功能: 首先,在accounts.views中定义一个生成验证码的函数: from PIL import Image, ImageDraw, ImageFont from django.http.response

Django之验证码

一.自己生成验证码 二.极验科技互动验证码 使用前步骤:下载官网文件--pip install geetest--引入其封装的js模块 代码分为三段:生成验证码--显示验证码--验证验证码. 1 from django.shortcuts import render,HttpResponse 2 from django.http import JsonResponse 3 from django.contrib import auth 4 from geetest import GeetestL

Django 之验证码实现

1. django-simple-captcha 模块 安装 django-simple-captcha pip install django-simple-captcha pip install Pillow 注册 和注册 app 一样,captcha 也需要注册到 settings 中.同时它也会创建自己的数据表,因此还需要数据同步. # settings.py INSTALLED_APPS = [ ... 'captcha', ] # 执行命令进行数据迁徙,会发现数据库中多了一个 capt

django图片验证码和滑动验证

1. django-simple-captcha 模块 安装 django-simple-captcha pip install django-simple-captcha pip install Pillow 注册 和注册 app 一样,captcha 也需要注册到 settings 中.同时它也会创建自己的数据表,因此还需要数据同步. # settings.py INSTALLED_APPS = [ ... 'captcha', ] # 执行命令进行数据迁徙,会发现数据库中多了一个 capt

生成验证码总结

java生成验证码总结 1.serialVersionUID    private static final long serialVersionUID = -8501285780349046114L;    Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的.相当于java类的身份证.主要用于版本控制. 2.BufferedImage类    --BufferedImage 子类描述具有可访问图像数据缓冲区的 Image.    TYPE_INT_RG