Добавляем reCAPTCHA к форме в проекте Django

1494 0

Для фильтрации спамма в формах на сайте Гугл предоставил нам всем удобный инструмент reCAPTCHA.

Добрые люди из сообщества Django разработали приложение Django-recaptcha.

Поэтому у нас больше нет оправданий, чтобы не использовать удобную каптчу в своих проектах.

Шучу кому надо ставить reCaptcha читайте дальше

---

1. Идем в гугл за рекаптчей по ссылке: recaptcha если еще вас нет в гугле (как вы вообще живёте?) регистрируемся и регистрируем свой проект.

2. В окружении ставим Django-recaptcha:

pip install django-recaptcha

3. Добавляем приложение в settings.py

INSTALLED_APPS = [
...
'captcha',
...
]

4. Туда же в settings.py добавляем ключи полученные при регистрации своего проекта в recaptcha (смотри шаг 1)

RECAPTCHA_PUBLIC_KEY = '*******сюда ставим публичный ключ*********'
RECAPTCHA_PRIVATE_KEY = '*******сюда ставим приватный ключ********'

5. Для добавления каптчи в форму делаем так:

from captcha.fields import ReCaptchaField
class MyForm(forms.Form):
...
    captcha = ReCaptchaField()
    ...

6. Каптча не адаптивная ((( но есть хитрость для узких экранов. В адаптивных стилях добавляем:

/* Extra small devices (portrait phones, less than 576px) xs */
@media (max-width: 575.98px) {
    ...
    .g-recaptcha {
transform:scale(0.75); /* Добавлять на свой вкус */
transform-origin:0 0;
}
    ...
}

После всех этих шагов каптча будет работать как на этом сайте.

P.S. В настоящее время спаммеры прокачались и Recaptcha не спасает!
Мне пришлось придумать свою необычную каптчу на основе карты leaflet.
Эту каптчу я планирую использовать в своих личных проектах, а не распространять. 
Больше уникальных каптч и спаммеры останутся "с носом" )))

Комментарии

Контактные данные

 Россия, г. Москва