首页 > 其他分享 >Django-验证码功能

Django-验证码功能

时间:2023-05-22 11:55:54浏览次数:46  
标签:功能 form 验证码 Django forms captcha import login django

# 安装django-simple-captcha
pip install django-simple-captcha

# settings.py
INSTALLED_APPS = [
# ...
'captcha',
]

# urls.py
from captcha.views import captcha_image
from django.urls import path
from .views import login_view

urlpatterns = [
path('captcha/', captcha_image, name='captcha'),
path('login/', login_view, name='login'),
]

# forms.py
from django import forms
from captcha.fields import CaptchaField

class LoginForm(forms.Form):
username = forms.CharField()
password = forms.CharField(widget=forms.PasswordInput)
captcha = CaptchaField()

# views.py
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login
from .forms import LoginForm

def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
captcha = form.cleaned_data['captcha']
if captcha:
user = authenticate(username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
form = LoginForm()
return render(request, 'login.html', {'form': form})

标签:功能,form,验证码,Django,forms,captcha,import,login,django
From: https://www.cnblogs.com/xiyehao/p/17420231.html

相关文章

  • 验证码倒计时
    this.countdownTime=null;letsend=60;--send;this.getSmsCodeTip=`${send}s后重新获取`;this.countdownTime=setInterval(()=>{--send;if(send===0){this.getSmsCodeTip='重新获取';send=60;this.isCountDown=true;clearInterval(th......
  • 通过sassoa低代码引擎平台快速搭建(财务核销-基础资料-银行列表)的管理功能
    快速预览:  首先拿到财务人员的需求是这样的:原始第一手需求。 001:因为表格中是有合并单元格的情况所以我们手动完成拆分单元格并且将文件存储为【银行列表.xlsx】放在电脑磁盘上的任意目录。002:在引擎系统管理后台、新建packages【销账基础资料】,点击新建table 页面......
  • 基于springBoot框架JAVA语言汽车销售管理系统功能实现
    运行环境idea(推荐)、jdk1.8、mysql5.X(不能为8驱动不匹配)、maven项目技术springboot+vue项目描述本项目基于springboot以及Vue开发。针对汽车销售提供客户信息、车辆信息、订单信息、销售人员管理、财务报表等功能,提供经理和销售两种角色进行管理。1.安装好node环境2.......
  • 基于springboot的宿舍管理系统实现宿管、后勤权限功能
    项目描述系统中的用户分为三类,分别为学生、宿管、后勤。这三类用户拥有不同的操作权限。系统中用到的技术包括Axios,Echarts,POI。特色功能有人性化的宿舍分配,可视化的账单管理、房间管理、记账管理,Excel文件上传后数据导入数据库等等。运行环境idea+mysql5.7+jdk1.8+maven3......
  • 改进django rest framework中的token验证,并加入cache
        在用户验证方面用到token验证,这是一种安卓/iso/..手机客户端常用的,方便的验证方式。原理是客户端给我发一段字符串,这段字符串是用户在注册,登入的时候、服务器生成的,并关联到用户。保存到数据库,然后返回给客户端,客户端之后呢,就可以凭借这个字符串来确认“我是我,不是别人......
  • 利用 Django REST framework 编写 RESTful API
        自动生成符合RESTful规范的API支持OPTION、HEAD、POST、GET、PATCH、PUT、DELETE根据 Content-Type生成browserable的交互页面(自动为API生成非常友好的浏览器页面)非常细粒度的权限管理(可以细粒度到field级别)示意图安装$pipinstalldjangorestframew......
  • django:DateTimeField如何自动设置为当前时间并且能被修改
    创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。这三个field有着相同的参数auto_now和auto_now_add,表面上看起来很easy,但实际使用中很容易出错,下面是一些注意点。DateTimeField.auto_no......
  • Django Model 定义语法
    简单用法fromdjango.dbimportmodelsclassPerson(models.Model):first_name=models.CharField(max_length=30)last_name=models.CharField(max_length=30)fromdjango.dbimportmodelsclassPerson(models.Model):first_name=models.CharField(max_......
  • 苹果逼停微信赞赏功能,最大赢家是...
    阅读文本大概需要2分钟。想必大家都知道了,今天开始,微信「被逼」关闭了iOS用户的公众号赞赏功能,至于苹果为什么又来找茬?很明显,你做的太大了,威胁了苹果爸爸的地位,要么给我利益分成,要么我就找各种理由制裁你,这是苹果一贯的作风。还记得之前「小程序」刚推出的时候我就说,苹果是颗定......
  • Django后台 + Wordpress主题,只要自己看上的主题都可以让它变成自己的
    既然学习了PythonWeb怎么能没有自己的一个小站呢?没有自己精心打造的一个小站怎么敢说自己学习过PythonWeb呢?说的再多不如直接干,我的个人网站也已经部署上线。Django后台+Wordpress主题,只要自己看上的主题都可以让它变成自己的为什么要选择Wordpress主题呢?自己在刚开始学习P......