博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django验证码的使用
阅读量:5150 次
发布时间:2019-06-13

本文共 1467 字,大约阅读时间需要 4 分钟。

Django的功能非常强大,源码中已经有登陆,退出,重设密码等相关的视图函数,在下面这个 app 中

django.contrib.auth

 但毕竟功能少了点,因此我使用了django-users2和django-simple-captcha,这两个都可以通过pip来下载

django-users2相当于django.contrib.auth的改进版,django-simple-captcha是一个Django的验证码包,十分好用

为了方便修改,我将django-users2的users文件夹直接复制到项目目录下,当作app使用

 

从这张图我们可以看到,django-users2从Django那里继承了关于登录、注销、密码修改和重置等方面的模块,自己也写了注册、激活等方面的内容,

下面我简单说一下加入验证码的功能。

1、使用django-simple-captcha

  django-simple-captcha是django的验证码包,非常简单实用,配合django-users2甚至只需要两行代码就能实现验证码功能,使用方法如下;

  

  (1)安装 

pip install django-simple-captcha

  

  (2)将captcha 加入 settings.py 的 INSTALLED_APPS

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'captcha',]

  

  (3)运行

python manager.py migrations python manage.py migrate

  

  (4)url路由加入urls.py的urlpatterns

urlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^captcha/', include('captcha.urls')),]

  (5)在forms.py中引入,以注册模块为例:

 

  

2、注册模块还好说,毕竟只需要在users文件夹下添加就可以了,但登录模块就不一样了,login模块的forms.py文件在django.contrib.auth文件夹里,总不能跑到Django里面再把他修改了吧,当然这种方法是可行的,但缺点是只能在自己的电脑里运行才可以。因能力有限,我想了个笨法子。

 

 

从这张图以及第一张图可以看出,登录是调用的Django自己的login模块,但是把template_name给覆写了,因此我就想把login的form也给覆写了,所以我找到 login 的源码

 

 

可以看出 login 的表单继承的是 AuthenticationForm, 因此我把 AuthenticationForm类 以及相关的类复制到users文件夹的forms.py文件里,加入验证码代码,然后进行覆写,结果就是这样

 

 

 

现在就说这么多吧,如果发现更好的方法,在以后的文章里应该会提到,再见!!!!!

 

转载于:https://www.cnblogs.com/Alex-as/p/8587010.html

你可能感兴趣的文章
大话设计模式-职责链模式
查看>>
解决Ubuntu下博通网卡驱动问题
查看>>
Oracle中的instead of触发器
查看>>
【翻译】7个ASP.NET MVC最佳实践
查看>>
EF Core 2.1变化
查看>>
转:C++ Applications
查看>>
win7 64位机ODBC的数据源DSN添加和移除问题
查看>>
一个不错的逻辑回归的实例
查看>>
Python第一天
查看>>
css position
查看>>
【bzoj2788】Festival
查看>>
执行gem install dryrun错误
查看>>
Java SE之正则表达式一:概述
查看>>
广义表
查看>>
HTML5简单入门系列(四)
查看>>
AndroidStudio快捷键
查看>>
实现字符串反转
查看>>
转载:《TypeScript 中文入门教程》 5、命名空间和模块
查看>>
苹果开发中常用英语单词
查看>>
[USACO 1.4.3]等差数列
查看>>