Django为窗体加上防机器人的验证码功能过程解析


Posted in Python onAugust 14, 2019

这里我们使用 django-simple-captcha 模块,官方介绍如下:https://github.com/mbi/django-simple-captcha

一键安装:

pip install django-simple-captcha

在 setting.py 中把 'captcha' 加到 INSTALLED_APP 的区块中

INSTALLED_APPS = (
  # ...
  'captcha',
  # ... 
)

由于此模块会到数据库建立自己的数据表,因此要先执行数据库的 migrate 操作:

python manage.py migrate

在 urls.py 中加上这个模块对应的网址:

from django.urls import path, re_path, include
urlpatterns = [
  #...
  url(r'^captcha/', include('captcha.urls'),
  # ...
]

在窗体类中加上 CaptchaField 字段 :

from captcha.fields import CaptchaField
class PostForm(forms.ModelForm):
  captcha = CaptchaField() #CaptchaField 字段
  class Meta:
    model = models.Post
    fields = ['mood', 'nickname', 'message', 'del_pass']

  def __init__(self, *args, **kwargs):
    super(PostForm, self).__init__(*args, **kwargs)
    self.fields['mood'].label = '现在的心情'
    self.fields['nickname'].label = '您的昵称'
    self.fields['message'].label = '心情留言'
    self.fields['del_pass'].label = '设置密码'
    self.fields['captcha'].label = '请输入验证码'

运行结果如下:

Django为窗体加上防机器人的验证码功能过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python列出目录下指定文件与子目录的方法
Jul 03 Python
spark: RDD与DataFrame之间的相互转换方法
Jun 07 Python
通过shell+python实现企业微信预警
Mar 07 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python 支持向量机分类器的实现
Jan 15 Python
如何在 Django 模板中输出 "{{"
Jan 24 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
python中如何写类
Jun 29 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
Feb 22 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
Python趣味挑战之实现简易版音乐播放器
May 28 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 #Python
Django如何使用第三方服务发送电子邮件
Aug 14 #Python
Python3 chardet模块查看编码格式的例子
Aug 14 #Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 #Python
python3调用windows dos命令的例子
Aug 14 #Python
python脚本执行CMD命令并返回结果的例子
Aug 14 #Python
用Python调用win命令行提高工作效率的实例
Aug 14 #Python
You might like
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
php ci框架验证码实例分析
2013/06/26 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
php ImageMagick windows下安装教程
2015/01/26 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
深入浅析PHP的session反序列化漏洞问题
2017/06/15 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
实例讲解PHP表单
2020/06/10 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
javascript 鼠标拖动图标技术
2010/02/07 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
turn.js异步加载实现翻书效果
2019/07/25 Javascript
layui自定义工具栏的方法
2019/09/19 Javascript
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
python 日志增量抓取实现方法
2018/04/28 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
建筑公司文秘岗位职责
2013/11/29 职场文书
5.12护士节活动总结
2015/02/10 职场文书
宝塔更新Python及Flask项目的部署
2022/04/11 Python