基于Python实现原生的登录验证码
· 阅读需 7 分钟
介绍使用 Python、Django 和 Pillow 实现原生图片登录验证码的方法。

概述
在前面的文章中,我有分享到vue+drf+第三方滑动验证码的接入实现(文中也留了坑分享图片验证码功能的实现),即本文将要分享的是基于python实现原生的登录验证码
通常的验证码,人眼看上去更像是一张小图片
在html语法中,嵌入一张图片一般用img标签实现,而img标签对应的src一般有以下几种写法
- 图片的本地路径
- 图片的url
- 图片的二进制数据(base64编码)
其中前两种方法都需要外部具有实际存在的图片,第三种方法则是将图片进行编码后填充到img标签的src下
验证码实现的演进过程
路由及页面
为了 实现验证码的功能,需要开设一个url单独处理验证码功能,修改全局路由
urlpatterns = [
......
url(r'^login/', views.login, name='login'),
# 图片验证码
url(r'^get_code/', views.get_code, name='gc'),
...
]
然后修改前端登录页面login.html的验证码部分
...
<div class="form-group">
<label for="">验证码</label>
<div class="row">
<div class="col-md-6">
<input type="text" name="code" id="id_code" class="form-control">
</div>
<div class="col-md-6">
<img src="/get_code/" alt="" width="430" height="35" id="id_img">
</div>
</div>
</div>
<input type="button" class="btn btn-success" value="登陆" id="id_commit">
...