博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
[YTU]_2443 ( C++习题 复数类--重载运算符3+)
查看>>
sdut_1189
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
国内外免费电子书(数学、算法、图像、深度学习、机器学习)
查看>>
狄利克雷过程(Dirichlet Process)
查看>>
五子棋项目的实现(二)博弈树算法的描述
查看>>
Hibernate : Disabling contextual LOB creation as createClob() method threw error
查看>>
【bzoj4872】[Shoi2017]分手是祝愿 期望dp
查看>>
字符串元转分
查看>>
thinkphp 防sql注入
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
博客第一弹—聊聊HTML的那些事
查看>>
Python Web框架Django (零)
查看>>