Django实战-信息资讯-图形验证码

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

有些网站的注册和登录会用到图形验证码,但随着爬虫技术的进步,图形验证码从简单的字母和数字,到比较高要求的滑块和点击选择文字。

本次项目会用到 PIL 图像处理标准库来生成图形验证码。

图像缩放操作

生成图形验证码

Image 是一个画板(context) ImageDraw 是一个画笔 ImageFont 画笔的字体。

把一些常量抽取成类属性

需要定义图形验证码中的字体,生成几位数的验证码,图形和字体的大小,图形的背景颜色和字体的颜色。

取样 number是生成验证码的位数

定义成类方法,然后是私有的,对象在外面不能直接调用。

绘制干扰线

绘制干扰点

生成验证码

读取图形验证码

在 django.http 模块中定义了 HttpResponse 对象的API。

属性

content:表示返回的内容,字符串类型

charset:表示response采用的编码字符集,字符串类型

status_code:响应的HTTP响应状态码

content-type:指定输出的MIME类型

方法

init :使用页内容实例化HttpResponse对象

write(content):以文件的方式写

flush():以文件的方式输出缓存区

set_cookie(key, value='', max_age=None, expires=None):设置Cookie

key、value 都是字符串类型;

max_age 是一个整数,表示在指定秒数后过期;

expires 是一个 datetime 或 timedelta 对象,会话将在这个指定的日期/时间过期,注意 datetime 和 timedelta 值只有在使用 PickleSerializer 时才可序列化;

max_age 与 expires 二选一;

如果不指定过期时间,则两个星期后过期。

delete_cookie(key):删除指定的key的Cookie,如果key不存在则什么也不发生。

调用图形验证码生成类

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190627A000CO00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券