如何在 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", #My app name "captcha" # the module name ]
这将添加验证码作为一个应用。
在项目的根目录中,添加以下几行:
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 添加 **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})我们在主页视图中渲染表单,在 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>这是我们渲染验证码表单的前端。
我们完成了;现在您可以检查输出。
输出

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP