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基础语言学习笔记总结(精华)
Nov 14 Python
Python排序搜索基本算法之选择排序实例分析
Dec 09 Python
pandas的object对象转时间对象的方法
Apr 11 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
Python中单线程、多线程和多进程的效率对比实验实例
May 14 Python
python3获取url文件大小示例代码
Sep 18 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
Python字符串三种格式化输出
Sep 17 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 Python
详解Python中下划线的5种含义
Jul 15 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
PHP+javascript液晶时钟
2006/10/09 PHP
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
JS 非图片动态loading效果实现代码
2010/04/09 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
artdialog的图片/标题以及关闭按钮不显示的解决方法
2013/06/27 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
浅谈JQuery+ajax+jsonp 跨域访问
2016/06/25 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
vue router demo详解
2017/10/13 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
Python中的迭代器漫谈
2015/02/03 Python
Python开发常用的一些开源Package分享
2015/02/14 Python
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
python中redis的安装和使用
2016/12/04 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
土木工程专业个人求职信
2013/12/05 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python