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学习之第三方包安装方法(两种方法)
Jul 30 Python
python 中split 和 strip的实例详解
Jul 12 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
理解python中生成器用法
Dec 20 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
May 24 Python
python实现超简单的视频对象提取功能
Jun 04 Python
Python使用gRPC传输协议教程
Oct 16 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
使用pyinstaller逆向.pyc文件
Dec 20 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
PHP4.04简明安装
2006/10/09 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
2013/01/06 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
javascript实现tab切换特效
2015/11/12 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
详解VUE 数组更新
2017/12/16 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
Python自动重试HTTP连接装饰器
2015/04/28 Python
Python抓取百度查询结果的方法
2015/07/08 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
python中导入 train_test_split提示错误的解决
2020/06/19 Python
Giglio俄罗斯奢侈品购物网:男士、女士、儿童高级时装
2018/07/27 全球购物
MAC Cosmetics巴西官方网站:M·A·C彩妆
2019/04/18 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
物流管理专业大学生自荐信
2013/10/04 职场文书
元旦联欢会主持词
2014/03/26 职场文书
2014年大学生党员评议表自我评价
2014/09/20 职场文书
会计试用期工作总结2015
2015/05/28 职场文书