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代码实例
Feb 04 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
python中正则表达式与模式匹配
May 07 Python
python读写csv文件实例代码
Jul 05 Python
python实时检测键盘输入函数的示例
Jul 17 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
python3.6生成器yield用法实例分析
Aug 23 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
Pytorch自己加载单通道图片用作数据集训练的实例
Jan 18 Python
Python实现Word文档转换Markdown的示例
Dec 22 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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 中文处理技巧
2010/04/25 PHP
windows下zendframework项目环境搭建(通过命令行配置)
2012/12/06 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
php中序列化与反序列化详解
2017/02/13 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
jQuery下拉框的简单应用
2016/06/24 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
Python笔记(叁)继续学习
2012/10/24 Python
python实现的一个火车票转让信息采集器
2014/07/09 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
python获取代理IP的实例分享
2018/05/07 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
python英语单词测试小程序代码实例
2019/09/09 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
Python 解析xml文件的示例
2020/09/29 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
Python中pass语句的作用是什么
2016/06/01 面试题
餐饮部总监岗位职责范文
2014/02/13 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
公证委托书大全
2014/04/04 职场文书
结婚保证书
2015/01/16 职场文书
2016春节家属慰问信
2015/03/25 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫