Чтобы использовать Yandex SmartCaptcha в приложениях Django, вам нужно выполнить несколько шагов.
Шаг 1: Установка SmartCaptcha SDK
Сначала необходимо установить SmartCaptcha SDK, добавив следующую строку в ваш файл requirements.txt:
yandex-smartcaptcha-sdk==1.0.0
Затем вы можете установить SDK, выполнив команду:
pip install -r requirements.txt
Шаг 2: Получение API ключа
Для использования SmartCaptcha вам нужно получить API ключ. Для этого вам потребуется зарегистрироваться на странице SmartCaptcha (https://smartcaptcha.yandex.com/), создать проект и получить API ключ.
Шаг 3: Настройка Django проекта
Ниже приведены шаги по настройке Django проекта для использования SmartCaptcha.
3.1: Добавьте 'yandex_smartcaptcha' в список установленных приложений в вашем файле settings.py:
INSTALLED_APPS = [ ... 'yandex_smartcaptcha', ... ]
3.2: В вашем файле settings.py добавьте следующие строки:
# Ваш API ключ SmartCaptcha SMARTCAPTCHA_API_KEY = 'your_api_key' # Путь до папки для временной загрузки файлов SMARTCAPTCHA_TMP_DIR = '/path/to/tmp/dir'
Замените 'your_api_key' на реальный API ключ, полученный на шаге 2. Укажите путь к директории, в которую будут сохраняться временные файлы, используемые SmartCaptcha.
3.3: В вашем файле urls.py добавьте следующие строки:
from django.urls import include, path urlpatterns = [ ... path('smartcaptcha/', include('yandex_smartcaptcha.urls')), ... ]
Шаг 4: Добавление SmartCaptcha формы в вашу HTML страницу
Теперь вам нужно добавить SmartCaptcha форму на вашу HTML страницу. Вам понадобится использовать шаблонный тег для отображения формы, а также добавить скрипт для обработки проверки капчи.
Пример:
<form action="{% url 'yandex_smartcaptcha_submit' %}" method="post"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="Отправить"> </form> {% load yandex_smartcaptcha %} <script src="https://yandex.st/jquery/3.5.1/jquery.min.js"></script> <script src="{% st_yandex_smartcaptcha_script %}"></script>
Обратите внимание, что вы должны использовать шаблонный тег {% st_yandex_smartcaptcha_script %}
для добавления скрипта обработки капчи.
Шаг 5: Обработка данных формы в вашем Django представлении
Наконец, вам нужно обработать данные формы в вашем Django представлении. Чтобы выполнить проверку капчи, вы можете использовать следующий код:
from django.http import HttpResponse from yandex_smartcaptcha.decorators import check_smartcaptcha @check_smartcaptcha def my_view(request): if request.method == 'POST': # код обработки данных формы return HttpResponse('Success') return render(request, 'my_template.html')
Добавьте декоратор @check_smartcaptcha
перед вашим представлением, чтобы выполнить проверку капчи перед обработкой данных формы.
Это все необходимые шаги для использования Yandex SmartCaptcha в ваших приложениях Django. Теперь вы можете добавить защиту от спама и ботов с помощью SmartCaptcha.