一、引用 包

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

Python——Django框架——django-simple-captcha(验证码)相关推荐

  1. Python Web框架Django学习(二)

    python web框架Django学习(二) 目录:  三.Django创建APP  四.创建登录页面,实现用户交互,后台管理用户(非数据库方式) ========================= ...

  2. Python web框架Django学习(1)

    2019独角兽企业重金招聘Python工程师标准>>> 1.Django简介 (1)Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的 ...

  3. python网络框架DJANGO应用--哎淘网

    已经许久没有来csdn更新博客了,排名也到了千里之外,估计再过一阵子就扫地出门了.在学校的时候没有用过脚本,但久闻python的大名,现在它已成为我工作中不可或缺的一个工具.         一直对建 ...

  4. Python Web框架 Django项目搭建与测试详解

    Django项目搭建 0. 项目准备: python:(目前更新到3.9了),下载地址: 点此下载python https://www.python.org/downloads/ python解释器: ...

  5. 基于Python web框架Django+Bootstrap的房源推荐系统

    哈喽,大家好呀,本次给大家推荐一个房源推荐系统,以成都市的某几个区的数据为例,仿链接平台,主要业务逻辑是: 1)将链家的数据爬取下来存储为Json文件 2)Json文件向前端JavaScript传递参 ...

  6. 191.基于Django框架发送邮件与手机验证码详解

    1.邮箱验证环境搭建 基本的项目搭建方式还是可以参考专栏中前几篇文章 model 创建模型,并迁移数据库(sqlite) from django.db import models# Create yo ...

  7. Python Web 框架-Django day05

    目录 1.F查询和Q查询 2.原生的数据库操作方法 3.使用后台管理 models day04 1.增加数据 Entry.objects.create(属性=值) 返回值:创建好的实体对象 创建实体对 ...

  8. Django框架-Django视图(views)系统

    Django的视图系统 定义:一个视图函数(或类),简称为视图,是一个简单的python函数或类,它接受web请求并且返回web响应. 响应可以是一张网页的html内容,一个重定向,一个404错误,一 ...

  9. 初学者Django框架的基本使用,以及项目部署(Docker部署)

    Django框架 Django是Python Web应用框架, 基于Python的WSGI(Web Service Gateway Interface)Web服务网关接口, Django从3.0开始运 ...

  10. django language_第 58 天:Python Web开发 Django 简介

    今天来为大家介绍 Python 另一个 Web 开发框架 Django,它是一个基于 Python 定制的开源 Web 应用框架,最早源于一个在线新闻 Web 网站,后于2005年开源.Django ...

最新文章

  1. 离线人脸属性分析_最新开源 | 人脸识别应用套件:毫秒级离线识别 适用多类场景...
  2. C语言试题四十四之移动一维数组中的内容,若数组中由n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。
  3. CSS布局技巧之——各种居中
  4. vivado下创建基本时序周期约束
  5. Altium Designer20 PCB板子绘制
  6. Java描述设计模式(13):迭代器模式
  7. 发生一个未处理的异常 脚本调试 错误号2912
  8. 解决IP地址冲突的方法--DHCP SNOOPING
  9. Abseil之拆分字符串
  10. [转载]allowTransparency属性
  11. AD9 设置网络标号作用域
  12. GM8827C 多通道LVDS 串行发送器,27位CMOS/TTL信号转化为多路LVDS信号
  13. 电脑备份,电脑怎么备份系统,小白提供2种备份方法
  14. 外接Hdmi没有声音怎么设置
  15. 子选择器和后代选择器
  16. 软件设计师 UML建模大题
  17. navigationBar 标题字体颜色设置
  18. 解决薪资倒挂的最佳方式!
  19. HTC ONE X刷ruu的详细刷机教程
  20. Day10-feign结合Hystrix使用-p163、p164

热门文章

  1. 2021高考成绩查询内蒙时间,2021内蒙古高考成绩什么时候几点可以查
  2. android开发工具下载
  3. PHP将字符串首字母大小写转换
  4. 网络IPC非阻塞和异步I/O
  5. React开发(124):ant design学习指南之form中的validateFields
  6. 前端学习(3050):vue+element今日头条管理-表格组件基本使用
  7. [css] 如何写高效的CSS?
  8. [css] 你有用过弹性布局吗?说说你对它的理解
  9. 工作335:uni-ele-el-date-picker限制选择时间
  10. 工作333:uni-增加添加成功提示