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不存在则什么也不发生。
调用图形验证码生成类
领取专属 10元无门槛券
私享最新 技术干货