Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Django 웹사이트에 보안 문자를 추가하는 방법은 무엇입니까?

<시간/>

보안 문자는 웹사이트에서 확인하는 데 사용되는 최신 방법 중 하나입니다. 그것은 매우 멋진 방법이며 모든 두 번째 웹 사이트에서 이를 사용하고 있습니다. Google 보안 문자를 사용할 수 있지만 적용하는 것은 정말 골치 아픈 일입니다. 그러나 Django에는 그렇게 하는 더 간단한 방법이 있습니다.

이 기사에서는 Django 웹 사이트에서 보안 문자를 만드는 방법을 배울 것입니다. 자, 시작하겠습니다.

예시

먼저 Django 프로젝트와 앱을 생성합니다.

이제 django-simple-captcha를 설치하세요. 라이브러리 -

pip install django-simple-captcha

settings.py로 이동합니다. INSTALLED_APPS 내부에 앱과 "보안 문자"를 추가합니다. −

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 처리기에서 양식을 렌더링하고 양식을 확인하거나 보안 문자라고 말할 수 있으며 확인 후 결과를 인쇄합니다.

템플릿에서 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>

이것은 보안 문자 양식을 렌더링하는 프런트엔드입니다.

우리는 끝났습니다. 이제 출력을 확인할 수 있습니다.

출력

Django 웹사이트에 보안 문자를 추가하는 방법은 무엇입니까?