简单搞定生成验证码:

1.views.py

from io import BytesIO
import random
from PIL import Image,ImageDraw,ImageFont
from utils.check_code import create_validate_code def checkCode(request):
return render(request,'code_test.html') def codetest(request):
# # 获取随机颜色的函数
# def get_random_color():
# return random.randint(, ), random.randint(, ), random.randint(, )
#
# # 生成一个图片对象
# img_obj = Image.new(
# 'RGB',
# (, ),
# get_random_color()
# )
# # 在生成的图片上写字符
# # 生成一个图片画笔对象
# draw_obj = ImageDraw.Draw(img_obj)
# # 加载字体文件, 得到一个字体对象
# font_obj = ImageFont.truetype('arial.ttf', )
# # 开始生成随机字符串并且写到图片上
# tmp_list = []
# for i in range():
# u = chr(random.randint(, )) # 生成大写字母
# l = chr(random.randint(, )) # 生成小写字母
# n = str(random.randint(, )) # 生成数字,注意要转换成字符串类型
#
# tmp = random.choice([u, l, n])
# tmp_list.append(tmp)
# draw_obj.text(( + * i, ), tmp, fill=get_random_color(), font=font_obj)
#
# # 保存到session
# request.session["valid_code"] = "".join(tmp_list)
# # 加干扰线
# width = # 图片宽度(防止越界)
# height =
# for i in range():
# x1 = random.randint(, width)
# x2 = random.randint(, width)
# y1 = random.randint(, height)
# y2 = random.randint(, height)
# draw_obj.line((x1, y1, x2, y2), fill=get_random_color())
#
# # 加干扰点
# for i in range():
# draw_obj.point((random.randint(, width), random.randint(, height)), fill=get_random_color())
# x = random.randint(, width)
# y = random.randint(, height)
# draw_obj.arc((x, y, x + , y + ), , , fill=get_random_color())
#
# # 不需要在硬盘上保存文件,直接在内存中加载就可以
# io_obj = BytesIO()
# # 将生成的图片数据保存在io对象中
# img_obj.save(io_obj, "png")
# # 从io对象里面取上一步保存的数据
# data = io_obj.getvalue()
# return HttpResponse(data)

2.url

urlpatterns = [
path('admin/', admin.site.urls),
url('^checkcode.html$',views.checkCode),
url('^codetest.html',views.codetest),
]

3.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>验证码测试</title>
</head>
<body>
<p><input type="text" placeholder="用户名"></p>
<p><input type="text" placeholder="密码"></p>
<p><input type="text" placeholder="验证码">
<img src="/static/img/20181207212735.png" alt="">
<img src="/codetest.html" alt="">
</p>
</body>
</html>

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(一)验证码

    这里讲讲在django中使用第三方插件验证码的流程. 一. 先安装pillow, 通过 python -m pip install pillow 二.安装完后,在官方网站上看操作过程.地址:pillo ...

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

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

  8. django的验证码

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

  9. Django 之验证码实现

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

  10. Django中验证码的登录

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

随机推荐

  1. Hadoop虚拟机的jdk版本和本地eclipse的版本不一致怎么办

    在本周学习Hadoop遇到了一个问题,困扰了半天,本人在安装Hadoop时是按照视频来的,结果发现Hadoop上的jdk版本和本地eclipse的版本不一致,导致本地的程序到处jar包传到虚拟机上运用 ...

  2. 【性能测试】:对WebSphere中间件的监控方式

    1  登录WebSphere控制台 2 选择应用.点击启动和停止来启动和停止应用 3 查看当前活动.点击要查看的项目 4 在开始监测前,先选中服务,点击启动监控将集合状态改为活动的 进入页面后,在页面 ...

  3. (三)Audio子系统之AudioRecord.startRecording

    在上一篇文章<(二)Audio子系统之new AudioRecord()>中已经介绍了Audio系统如何创建AudioRecord对象以及输入流,并创建了RecordThread线程,接下 ...

  4. windows下python管理右键菜单

    实现很简单,不记得什么时候写的了,贴出来希望能有所价值 """ Windows中创建右键菜单 """ import os import sy ...

  5. Vue 混入(mixins)

    详细参考官方文档 基础 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. ...

  6. c# 操作excle

    添加引用  Microsoft.Office.Interop.Excel; 添加命名空间 using Excel = Microsoft.Office.Interop.Excel; //创建接口变量- ...

  7. 搭建类似生产环境的RAC

    install the necessary packages yum install -y 创建组.用户和目录 创建用户组 groupadd -g 2000 oinstallgroupadd -g 2 ...

  8. Django中管理并发操作

    上一篇我们说了,如何在Django中进行事务操作,数据的原子性操作 涉及了事务操作,我们不得不考虑的另一个问题就是:并发操作 还是那个用户转账的操作 我们使用事务操作解决的操作中途服务器宕机问题 但是 ...

  9. 《LeetBook》leetcode题解(6): ZigZag Conversion[E]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  10. Critical Regions和Guarded Regions区别

    KeEnterCriticalRegion和KeLeaveCriticalRegion配合使用,能禁止用户模式APC和普通内核模式APC的调用,但是不能禁止特殊内核模式的调用(NormalRoutin ...