如何在Django网站中添加验证码?
验证码是网站验证的现代方式之一;它是非常酷的方式,每秒钟有很多网站在使用它。你可以使用Google验证码,但是应用它真的是一件很麻烦的事情;然而,在Django中,我们有一个更简单的方法来做到这一点。
在本文中,我们将学习如何在Django网站中创建验证码。所以,让我们开始吧。
示例
首先,创建一个Django项目和一个应用程序。
现在安装 django-simple-captcha 库 −
pip install django-simple-captcha
在 settings.py 文件中,在INSTALLED_APPS中添加你的应用程序和 “captcha”:−
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"captchaproject", #我的应用程序名称
"captcha" # 模块名称
]
这将添加验证码作为应用程序。
在项目的根目录中,添加以下行−
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include("captchaproject.urls")),
path('/captcha',include("captcha.urls"))
]
这将添加我的应用程序和验证码的URL,在那里将进行验证。
在应用程序的主目录中,创建一个 forms.py 文件并输入 −
from django import forms
from captcha.fields import CaptchaField
class MyForm(forms.Form):
captcha=CaptchaField()
在这里,我们创建了一个带有验证码字段的表单。
不要忘记运行 “python manage.py migrate”
现在在应用程序的 view.py 文件中添加以下行 −
from django.shortcuts import render
from .forms import MyForm
# Create your views here.
def home(request):
if request.method=="POST":
form=MyForm(request.POST)
if form.is_valid():
print("success")
else:
print("fail")
form=MyForm()
return render(request,"home.html",{"form":form})
我们在home视图中呈现表单,在POST处理程序中,我们验证表单或者我们可以说是验证码,在验证后,我们打印结果。
在 templates 目录(您呈现每个HTML或CSS文件的目录,在此假定您已经知道并配置了它)中创建一个HTML文件,并添加以下内容
<!DOCTYPE html>
<html>
<head>
<title>Tut</title>
</head>
<body>
<form method="POST" novalidate>
{%csrf_token%}
{{form.captcha}}
<input type="submit" value="submit">
</form>
</body>
</html>
这是我们在前端渲染验证码表单的地方。
我们完成了;现在您可以继续检查输出。