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中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 Python
Python读取mp3中ID3信息的方法
Mar 05 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
详解Python文本操作相关模块
Jun 22 Python
Python程序退出方式小结
Dec 09 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
Python实现的各种常见分布算法示例
Dec 13 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
Python如何操作office实现自动化及win32com.client的运用
Apr 01 Python
如何使用python socket模块实现简单的文件下载
Sep 04 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
fleaphp crud操作之findByField函数的使用方法
2011/04/23 PHP
php动态绑定变量的用法
2015/06/16 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
PHP7匿名类用法分析
2016/09/26 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
AngularJs定制样式插入到ueditor中的问题小结
2016/08/01 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
jQuery实现菜单栏导航效果
2017/08/15 jQuery
Vue渲染函数详解
2017/09/15 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
int在python中的含义以及用法
2019/06/27 Python
python二进制文件的转译详解
2019/07/03 Python
Python实现最大子序和的方法示例
2019/07/05 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
2019/08/12 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
浅析python表达式4+0.5值的数据类型
2020/02/26 Python
应届生护士求职信
2013/11/01 职场文书
会计系毕业求职信
2014/08/07 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
Java spring定时任务详解
2021/10/05 Java/Android
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android