Python——Django框架——django-simple-captcha(验证码)

一、引用 包

pip install django-simple-captcha

二、将captcha加入setting的 INSTALLED_APPS

三、运行python manager.py migrations 和 python manage.py migrate

四、加入路径

path('captcha/',include('captcha.urls))

五、引入Form表单

from captcha.fields import CaptchaFieldclass
captcha = CaptcchaField()#生成图片验证码和输入框

六、ajax动态验证

from django.http import JsonResponse
from captcha.models import CaptchaStoredef ajax_val(request):if  request.is_ajax():cs = CaptchaStore.objects.filter(response=request.GET['response'], hashkey=request.GET['hashkey'])if cs:json_data={'status':1}else:json_data = {'status':0}return JsonResponse(json_data)else:# raise Http404json_data = {'status':0}return JsonResponse(json_data)
view.py
path(r'^ajax_val/',views.ajax_val, name='ajax_val'), #动态验证的路由
  <script>$(function(){$('#id_captcha_1').blur(function(){// #id_captcha_1为输入框的id,当该输入框失去焦点是触发函数
        json_data={'response':$('#id_captcha_1').val(), // 获取输入框和隐藏字段id_captcha_0的数值'hashkey':$('#id_captcha_0').val()}$.getJSON('/ajax_val', json_data, function(data){//ajax发送
            $('#captcha_status').remove()if(data['status']){ //status返回1为验证码正确, status返回0为验证码错误, 在输入框的后面写入提示信息
                $('#id_captcha_1').after('<span id="captcha_status" >*验证码正确</span>')}else{$('#id_captcha_1').after('<span id="captcha_status" >*验证码错误</span>')}});});})</script><script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
tempalte

七、ajax刷新

path(r’refresh/$’, views.captcha_refresh, name=’captcha-refresh’)
# 只是源码介绍不用写入自己的代码中
def captcha_refresh(request):"""  Return json with new captcha for ajax refresh request """if not request.is_ajax():# 只接受ajax提交raise Http404new_key = CaptchaStore.generate_key()to_json_response = {'key': new_key,'image_url': captcha_image_url(new_key),}return HttpResponse(json.dumps(to_json_response), content_type='application/json')
view.py
    $(function(){$('.captcha').css({'cursor': 'pointer'})# ajax 刷新$('.captcha').click(function(){console.log('click');$.getJSON("/captcha/refresh/",function(result){$('.captcha').attr('src', result['image_url']);$('#id_captcha_0').val(result['key'])});});
ajax刷新

 

 

 

| |

转载于:https://www.cnblogs.com/cxys85/p/10867358.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[html] 怎样计算首屏和白屏的时间?

[html] 怎样计算首屏和白屏的时间&#xff1f; function showPaintTimings() {if (window.performance) {let performance window.performance;let performanceEntries performance.getEntriesByType(paint);performanceEntries.forEach( (performanceEntry, i, entries) &g…

结构体+sort方法

昨天做了一道简单但很麻烦的题,我只能想到结构体,并用了STL的sort方法解决了它.不过从中有许多细节问题. 题目: Problem Description Lcy wanted to choose 50 ACMers from m players to join HDU-ACM team. He made n competitions , and now is your task to make the rankli…

oracle11gasm,oracle11gASM管理

asmoper和osoper类似都是额外的可选择创建的用户组&#xff0c;创建该独立的用户组以满足赋予用户一套受限的ASM实例管理权限(ASM的SYSOPER角色)&#xff0c;该权限包括了启动和停止ASM 实例&#xff0c;默认情况下OSASM(asmadmin)组成员将拥有所有SYSOPER的ASM管理权限。grid用…

[html] 如何在不同的端口间共享cookie?

[html] 如何在不同的端口间共享cookie&#xff1f; 根据同源策略&#xff0c;cookie是区分端口的&#xff0c;但是浏览器实现来说&#xff0c;“cookie区分域&#xff0c;而不区分端口&#xff0c;也就是说&#xff0c;同一个ip下的多个端口下的cookie是共享的。个人简介 我是…

php 路由 隐藏index,CI中路由与伪静态、隐藏index.php(十四)

1&#xff0c;设置路由默认控制器设置文件application/config/routes.php$route[default_controller] welcome;我们新建一个控制器文件application/controllers/article.php<?php class Article extends CI_Controller{public function index(){echo "这是一个Articl…

更新Linux内核

说明&#xff1a;为了安装Docker&#xff0c;当前虚拟机不满足要求&#xff0c;版本如下&#xff1a; [rootlocalhost116 ~]# uname -r 2.6.32-573.el6.x86_64 [rootlocalhost116 ~]# cat /etc/issue Red Hat Enterprise Linux Server release 6.7 (Santiago) Kernel \r on an …

简单的oracle备份恢复批处理文件 -- 转

建议一&#xff1a; 利用任务计划、批处理文件和ORACLE的EXP导出功能&#xff0c;可以根据日期自动生成ORACLE备份文件&#xff0c;大大方便了ORACLE数据备份。: 1、建立批处理文件backup.bat\. exp system/manager filed:\backup\oracle\oracle%date:~0,10%.dmp ownersystem l…

[html] 使用svg画一个微信的logo

[html] 使用svg画一个微信的logo <svg xmlns"http://www.w3.org/2000/svg" version"1.1"><!--绿色大椭圆下的小尾巴--><polygon points"70,92 85,97 65,107"style"fill:#84d845;"/><!--绿色大椭圆--><ell…

web项目jsp中无法引入js问题

https://blog.csdn.net/C1042135353/article/details/80274685#commentBox 这篇文章超赞的&#xff0c;几个小时的时间看了这篇文章豁然开朗&#xff0c;瞬间懂了。 转载于:https://www.cnblogs.com/c-lover/p/10869000.html

软件开发人员想找的工作,随便聊聊,娱乐大家,请补充补充

01. 工作环境好&#xff0c;大公司&#xff0c;很有名气的。02. 最好是新投资软件行业的老板&#xff0c;舍得烧钱&#xff0c;老板越不懂行越好。03. 公司最好是不加班&#xff0c;周末双休&#xff0c;出差有补贴&#xff0c;节假日都休息&#xff0c;每年还有法定年休&#…

oracle字符nul怎么输入,oracle - 如何摆脱Oracle数据库中的NUL字符? - 堆栈内存溢出...

就个人而言&#xff0c;我会使用CHR()来识别零值。 nul是ASCII 0&#xff0c; CHR()将返回您传入的数字的字符表示。SQL> with the_data as (2 select a || chr(0) || b as str from dual3 union all4 select a || c from dual5 )6 select dump(str)7 from the_data8 where …

[html] 为什么我们要使用web workers?

[html] 为什么我们要使用web workers&#xff1f; 因为js是单线程&#xff0c;如果存在大数据运算的时候会影响用户使用体验&#xff0c;出现卡顿的情况。 使用web workers 可以开启一个线程&#xff0c;在运算的同时&#xff0c;不影响用户体验。 web workers的几个使用场景可…

VRTK射线检测

VRTK射线检测回调事件 本人在工作中做VR隐患排查项目开发的时候&#xff0c;有个功能需要做到&#xff1a;按下手柄触摸板发送射线&#xff0c;松开触摸板的时候处理射线最后检测到的那个游戏物体。 功能构思&#xff1a;1、按下触摸板&#xff0c;从手柄上发射射线&#xff1b…

SELECT命令中的GROUPBY和HAVING子句

在介绍GROUP BY 和 HAVING 子句前&#xff0c;我们必需先讲讲sql语言中一种特殊的函数&#xff1a;聚合函数&#xff0c;例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记…

发布任务PHP源码,Thinkphp5新威客任务平台源码

最新更新日志 修复注册时提示验证码错误的BUG修复Thinkphp框架漏洞兼容linux去除冗余代码和无用文件功能模块 1.手机任务面&#xff0c;一个手机版的任务需要&#xff0c;支持雇主入住发布任务&#xff0c;用户是雇主也是做任务可以自己发任务&#xff0c;做任务。2.雇主发布任…

[html] 什么是本地存储的有效期?

[html] 什么是本地存储的有效期&#xff1f; 本地存储的四种方式&#xff1a;cookie&#xff0c;localStorage, sessionStorage, indexDB cookie: 通过 expires / max-age 设置过期时间。如不指定&#xff0c;则为 session cookie, 即一次会话有效。 localStorage: 持久存储&a…

神经网络模型模型转ONNX

近期由于业务需要&#xff0c;需要将训练好的模型转为ONNX格式&#xff0c;为此颇费了一番功夫&#xff0c;在此总结一下吧。。 1、ONNX是一种神经网络模型保存的中间格式&#xff0c;支持多种格式的模型转为ONNX&#xff0c;也支持使用ONNX导入多种格式的模型&#xff0c;具体…

10个值得关注的优秀CSS框架

大多数做过网页设计的都知道“CSS框架”&#xff0c;而且肯定有很多设计师已经开始在作品中使用CSS框架。 就像其他编程语言一样&#xff0c;CSS也可以把一些重复使用的代码整合起来&#xff0c;这样可以减轻很多的工作量。 恰当地利用CSS框架可以缩短开发时间&#xff0c;不过…

linux服务器 版本 比例,Linux比例近半 服务器操作系统混战开始

一项为期半年的虚拟化调查表明&#xff0c;企业普遍存在多种服务器操作系统混用的情况&#xff1b;受IT投资环境的影响&#xff0c;IT经理们现在更加重视服务器资源利用率。据了解&#xff0c;根据不同应用的特点&#xff0c;大多数企业都在数据中心中同时使用了多种操作系统&a…

[html] 如何在页面打开PDF文件?

[html] 如何在页面打开PDF文件&#xff1f; 移动端如果是安卓的不太能实现直接打开PDF文件&#xff0c;需要使用pdfjs将pdf转换成canvas&#xff0c;再在页面上展示个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎…