Для подключения Yandex Smart Captcha на сайт Django вам потребуется выполнить несколько шагов:
1. Зарегистрироваться на сайте Яндекс.Капча (https://captcha.yandex.ru) и создать новый проект.
2. Установить пакет django-recaptcha
в вашем виртуальном окружении Django. Выполните команду pip install django-recaptcha
.
3. Добавьте 'captcha'
в список INSTALLED_APPS
в файле настроек settings.py
вашего проекта Django:
INSTALLED_APPS = [ ... 'captcha', ... ]
4. Зарегистрируйте новые ключи для Yandex Captcha в файле настроек settings.py
:
RECAPTCHA_PUBLIC_KEY = 'ваш_публичный_ключ' RECAPTCHA_PRIVATE_KEY = 'ваш_секретный_ключ'
5. Добавьте специальные теги шаблонов в форму, на которой вы хотите использовать Yandex Smart Captcha. Например:
<form method="post" action="#"> {% csrf_token %} {% captcha %} <button type="submit">Отправить</button> </form>
6. В вашем представлении (view) проверьте, что введенная пользователем капча прошла проверку:
from django.shortcuts import render from django.http import HttpResponseRedirect from django.contrib import messages from captcha.fields import ReCaptchaField def my_view(request): if request.method == 'POST': form = MyForm(request.POST) if form.is_valid(): # Проверка прошла успешно return HttpResponseRedirect('/success/') else: form = MyForm() return render(request, 'my_template.html', {'form': form})
Обратите внимание, что MyForm
- это класс формы Django, который содержит поле для капчи:
from captcha.fields import ReCaptchaField from django import forms class MyForm(forms.Form): captcha = ReCaptchaField( label='', widget=ReCaptchaWidget(attrs={'theme': 'white'}), )
Вы можете настроить различные параметры виджета капчи, используя атрибуты в конструкторе ReCaptchaWidget
.
После выполнения всех этих шагов Yandex Smart Captcha будет успешно подключена на вашем сайте Django.