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错误处理详解
Sep 28 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
Python教程之全局变量用法
Jun 27 Python
python实现k-means聚类算法
Feb 23 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
python字符串与url编码的转换实例
May 10 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
python 进程的几种创建方式详解
Aug 29 Python
基于Python实现天天酷跑功能
Jan 06 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 Python
python 标准库原理与用法详解之os.path篇
Oct 24 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
use jscript Create a SQL Server database
2007/06/16 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
javascript原始值和对象引用实例分析
2015/04/25 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
vue 微信授权登录解决方案
2018/04/10 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
亚马逊印度站:Amazon.in
2017/10/15 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
留守儿童工作方案
2014/06/02 职场文书
社区志愿者培训方案
2014/06/10 职场文书
学校周年庆活动方案
2014/08/22 职场文书
商务考察邀请函模板
2015/02/02 职场文书
2015教师年度考核评语
2015/03/25 职场文书
公司员工手册范本
2015/05/14 职场文书
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers