如何在 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>
這是我們渲染驗證碼錶單的前端。
我們完成了;現在您可以檢查輸出。
輸出
廣告