Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะเพิ่ม captcha ในเว็บไซต์ Django ได้อย่างไร?


Captcha เป็นหนึ่งในวิธีการที่ทันสมัยสำหรับการตรวจสอบในเว็บไซต์ มันเป็นวิธีที่เจ๋งมากและทุก ๆ เว็บไซต์ก็ใช้มัน คุณสามารถใช้ Google captcha ได้ แต่การใช้งานนั้นปวดหัวมาก อย่างไรก็ตามใน Django เรามีวิธีการที่ง่ายกว่านี้

ในบทความนี้ เราจะมาเรียนรู้วิธีสร้าง captcha ในเว็บไซต์ 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()

ที่นี่เราสร้างแบบฟอร์มที่มีฟิลด์ captcha

อย่าลืมเรียกใช้ "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 เราตรวจสอบแบบฟอร์มหรือเราสามารถพูดแคปต์ชาและหลังจากการตรวจสอบ เราจะพิมพ์ผลลัพธ์

สร้างไฟล์ HTML ใน เทมเพลต ไดเร็กทอรี (ไดเรกทอรีที่คุณเพิ่มทุกไฟล์ HTML หรือ CSS ที่คุณแสดง ฉันคิดว่าคุณรู้และกำหนดค่าแล้ว) และเพิ่มบรรทัดต่อไปนี้ -

<!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>

นี่คือส่วนหน้าที่เราแสดงผลแบบฟอร์ม captcha

เราเสร็จแล้ว ตอนนี้คุณสามารถดำเนินการตรวจสอบผลลัพธ์ได้

ผลลัพธ์

จะเพิ่ม captcha ในเว็บไซต์ Django ได้อย่างไร?