博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django(一)验证码
阅读量:5295 次
发布时间:2019-06-14

本文共 1827 字,大约阅读时间需要 6 分钟。

     这里讲讲在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')

 

四、创建模板 

    
Title
{
% csrf_token %}

#创建模板如果把 “form” 写成 “from” 就没法跳转了

 

五、创建url 

url(r'^verifycode/$', views.verifycode),  url(r'^verifyTest1/$', views.verifyTest1),  url(r'^verifyTest2/$', views.verifyTest2)

 

六、效果

  

    当输入的验证码错误,会返回“false”。 正确则返回“You got it.”

   

 

转载于:https://www.cnblogs.com/Jomini/p/8580061.html

你可能感兴趣的文章
Android开发——高斯模糊效果的简单实现
查看>>
今天再次认真整理了浏览器收藏夹
查看>>
Codeforces Round #215 (Div. 2) D题(离散化+hash)
查看>>
C# DES进行加解密
查看>>
sql里面的分页
查看>>
作业10-异常
查看>>
apache伪静态规则及常见规则用法实例
查看>>
移动端(1)
查看>>
json-lib 的maven dependency ( 摘 )
查看>>
POJ2431-Expedition【优先队列+贪心】
查看>>
服务链(Service Chaining,or Service Function Chaining,SFC,功能服务链)
查看>>
php框架
查看>>
winform自动更新程序实现
查看>>
ASP.NET补充
查看>>
虚拟机搭建redis单机版及redis-cluster,使用redis desktop manager和java(eclipse)连接redis过程遇到问题汇总...
查看>>
codevs1174 靶形数独(DLX)
查看>>
ImageView类简介
查看>>
Gridview 重建表头/单击单元格弹出对话框/改变单元格背景色
查看>>
C++下混合编译c语言方法总结
查看>>
JavaScript 中的一些坑(一)http://roshanca.com/traps-in-javascript-part-I/
查看>>