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

這是我們渲染驗證碼錶單的前端。

我們完成了;現在您可以檢查輸出。

輸出

更新於:2021年8月26日

3K+ 次瀏覽

啟動你的 職業生涯

完成課程獲得認證

開始學習
廣告