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,另一个是一个模块 ...
随机推荐
- windows常见数据类型
一,常见数据类型 WORD: 16位无符号整形数据 DWORD: 32位无符号整型数据(DWORD32) DWORD64: 64位 ...
- BZOJ3712[PA2014]Fiolki——并查集重构树
题目描述 化学家吉丽想要配置一种神奇的药水来拯救世界.吉丽有n种不同的液体物质,和n个药瓶(均从1到n编号).初始时,第i个瓶内装着g[i]克的第i种物质.吉丽需要执行一定的步骤来配置药水,第i个步骤 ...
- Educational Codeforces Round 26 B,C
B. Flag of Berland 链接:http://codeforces.com/contest/837/problem/B 思路:题目要求判断三个字母是否是条纹型的,而且宽和高相同,那么先求出 ...
- Java“禁止”泛型数组
Java“禁止”泛型数组 原文:https://blog.csdn.net/yi_Afly/article/details/52058708 1. 泛型定义泛型编程是一种通过参数化的方式将数据处理与数 ...
- java项目http变更https
1. 创建 keystore 文件 执行keytool -genkey -v -alias tomcat -keyalg RSA -validity 3650 -keystore c:\tomc ...
- MT【53】对数平均做数列放缩
[从最简单的做起]--波利亚 请看下面三道循序渐进不断加细的题. 评:随着右边的不断加细,解决问题的方法也越来越"高端".当然最佳值$ln2$我们可以用相对 容易的方法来证明: $ ...
- MT【25】切线不等式原理及例题
评:切线不等式和琴生(Jesen)不等式都是有其几何意义的,在对称式中每一项单变量后利用图像的凹凸性得到一个线性的关系式.已知的条件往往就是线性条件,从而可以得到最值.
- NOIP2018退役记
退役失败*1. md可能只有一次啊.
- [NOIP提高组2018day2t1]旅行
题目描述 给定n个城市,m条双向道路的图, 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路.并且, 从任意一个城市出发,通过这些道路都可以到达任意一个其他城市.小 Y 只能通过 ...
- 【转】Linux常用命令
日常操作命令 查看当前所在的工作目录的全路径 pwd 12 [root@localhost ~]# pwd/root 查看当前系统的时间 date 12345678 [root@localhost ~ ...