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})

posted @   sup小白  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示