django中的图片验证码功能


Posted in Python onSeptember 18, 2019

python的验证码库(captcha)

将验证码做成这样:

django中的图片验证码功能

是不是和各大网页的图片源地址是一样,话不多说,让我们看代码:

我是用django和python中的captcha库做成 的

创建一个captcha_image.py:    

from captcha.image import ImageCaptcha
import random
class Captcha_Get():
  def __init__(self,
         CHAR_SET = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'],
         CAPTCHA_LEN = 4):
    self.CHAR_SET = CHAR_SET
    self.CAPTCHA_LEN = CAPTCHA_LEN
  def get_captcha(self):
    captcha_list = []
    for i in range(self.CAPTCHA_LEN):
      random_choice = random.choice(self.CHAR_SET)
      captcha_list.append(random_choice)
    return captcha_list
  def get_captcha_image(self):
    image = ImageCaptcha()
    captcha_list = self.get_captcha()#返回一个列表
    captcha_str = ''.join(captcha_list)#将列表的所有内容整合成一个字符串
    captcha_image = image.generate(captcha_str)
    #captcha_image返回<_io.BytesIO object at 0x000001C8758C8728>,它是一个<class '_io.BytesIO'>
    return captcha_str,captcha_image#因为要和django登陆相结合所以验证码的内容也要返回

然后,创建django项目

python-admin startproject mysite

创建app

python manage.py startapp app

在setting文件下注册app,写好urls,将captcha_image文件放入app目录下

views.py:

from django.http import JsonResponse,HttpResponse
from .captcha_image import *
def auth_code_port(request):
  """
  生成验证码的接口
  :param request:
  :return: 图片的对象
  """
  captcha_str, image_64 = Captcha_Get().get_captcha_image()
  #request.session['captcha_str'] = captcha_str #将验证码内容放入session以便于后边判断,但必须迁移数据库,否则报错
  #image = 'data:image/png;base64,'+image_64
  resp = HttpResponse(image_64, content_type='image/png')
  return resp

让我测试一下验证码接口是否正确:运行django项目,然后在网页上输入127.0.0.1:8000/app/auth_code_port

django中的图片验证码功能

这样就好了,在前端模板中就可以直接调用接口。

总结

以上所述是小编给大家介绍的django中的图片验证码功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python使用Socket(Https)Post登录百度的实现代码
May 18 Python
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
跟老齐学Python之通过Python连接数据库
Oct 28 Python
Django的分页器实例(paginator)
Dec 01 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
Python+opencv 实现图片文字的分割的方法示例
Jul 04 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
Python3实现二叉树的最大深度
Sep 30 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 Python
Python Matplotlib库实现画局部图
Nov 17 Python
python tkinter图形界面代码统计工具
Sep 18 #Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 #Python
Python 元组操作总结
Sep 18 #Python
python sorted函数的小练习及解答
Sep 18 #Python
python 默认参数相关知识详解
Sep 18 #Python
python连接PostgreSQL数据库的过程详解
Sep 18 #Python
Python传递参数的多种方式(小结)
Sep 18 #Python
You might like
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
2017/09/28 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
vue使用高德地图根据坐标定位点的实现代码
2019/08/22 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
django创建超级用户过程解析
2019/09/18 Python
python已协程方式处理任务实现过程
2019/12/27 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
利用python汇总统计多张Excel
2020/09/22 Python
应聘自荐书
2013/10/08 职场文书
经典的班主任推荐信
2013/10/28 职场文书
2014年中秋寄语
2014/08/11 职场文书
党委班子剖析材料
2014/08/21 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
学校安全管理制度
2015/08/06 职场文书
军训决心书范文
2015/09/22 职场文书
python 判断文件或文件夹是否存在
2022/03/18 Python