如何在Django网站中添加验证码?

如何在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>

这是我们在前端渲染验证码表单的地方。

我们完成了;现在您可以继续检查输出。

输出

如何在Django网站中添加验证码?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程