Django 学习:为窗体加上防机器人的验证机制(验证码功能)

  这里我们使用 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 = '请输入验证码'

运行结果如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逍遥剑客的游戏开发

关于VS2005+OGRE的问题

21290
来自专栏Danny的专栏

ASP.Net巧用窗体母版页

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

26820
来自专栏ml

Linux下如何查看自己的服务器有没有无线网卡

还是实验室那台破服务器,连不上网。有没有界面,所以想着如何用一些命令来链接上 热点。 当然,在linux下链接wifi没有win下那么一点就好了! ...

54450
来自专栏FreeBuf

3步以内利用中间人MitM攻击从RDP连接中获得密码

今天和大家分享个小技术,简单几步通过执行MitM攻击同时从RDP连接中提取明文凭据。我这里使用的测试环境是Linux(1台)、Windows(2台),此环境仅供...

21430
来自专栏游戏杂谈

手工编译Flex SDK 3.4的多国语言包

默认的Flex sdk 3.4只提供了日文(ja_JP)、英文语言包(en_US),如图所示:

11420
来自专栏WindCoder

大学期间Web制作集合

仿制的古风网站,屏幕有限,这是一个页面分开截后拼合的,虽然右下角有点小瑕疵(实在没心情改了,见谅哈),但整体上是不是很漂亮的说,其实这是大一上学期的一个大作业,...

20310
来自专栏编程

NodeMCU模块写入MicroPython固件

首先到micropython官方网站下载esp8266的固件, 下载地址为: https://micropython.org/download/#esp8266...

55970
来自专栏Golang语言社区

完整的golang 多协程+信道 任务处理示例

有几个地方需要注意:for i + 协程时如果协程使用可 i ,那么需要增加 i:= 来防止多协程冲突;实际执行任务时需要用一个函数包起来,防止单个任务pani...

33870
来自专栏Golang语言社区

完整的golang 多协程+信道 任务处理示例

有几个地方需要注意:for i + 协程时如果协程使用可 i ,那么需要增加 i:= 来防止多协程冲突;实际执行任务时需要用一个函数包起来,防止单个任务pani...

50650
来自专栏黑白安全

BeEF 内网钓鱼获取主机信息

BeEF是目前欧美最流行的web框架攻击平台,它的全称是 the Browser exploitation framework project.最近两年国外各种...

17130

扫码关注云+社区

领取腾讯云代金券