Вступ
Google reCAPTCHA – це потужний інструмент, який допомагає захистити ваш сайт від спаму та автоматизованих зловживань, перевіряючи, що користувач є людиною. Використовуючи пакет django-recaptcha, ви можете швидко інтегрувати цю функцію у свій проект Django.
Передумови
- Працюючий проект Django
- Встановлений Python
- Базові знання про pip та віртуальні середовища
Крок 1: Встановлення
Встановіть пакет django-recaptcha за допомогою pip ( на момент написання статті актуальна версія 4.0.0):
pip install django-recaptcha
Додайте 'django_recaptcha'
до списку INSTALLED_APPS
у файлі settings.py
:
INSTALLED_APPS = [
# ... інші додатки,
'django_recaptcha',
]
Крок 2: Отримання ключів Google reCAPTCHA
- Перейдіть до Google reCAPTCHA Admin Console та зареєструйте свій сайт.
- Оберіть тип reCAPTCHA (наприклад, reCAPTCHA v2 з прапорцем "Я не робот").
- Після реєстрації ви отримаєте Site Key та Secret Key.
Додайте отримані ключі до файлу settings.py
:
# settings.py
RECAPTCHA_PUBLIC_KEY = 'your-site-key'
RECAPTCHA_PRIVATE_KEY = 'your-secret-key'
Крок 3: Інтеграція reCAPTCHA у Django форми
Імпортуйте поле reCAPTCHA та віджет, і додайте його до форми:
from django import forms
from captcha.fields import ReCaptchaField
from captcha.widgets import ReCaptchaV2Checkbox
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox())
Крок 4: Оновлення шаблону
Відобразіть форму у шаблоні та підключіть необхідний JavaScript:
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Надіслати</button>
</form>
Крок 5: Тестування та фінальні кроки
- Запустіть сервер розробки за допомогою:
python manage.py runserver
- Перейдіть на сторінку з формою та перевірте, що віджет reCAPTCHA завантажується коректно.
- Відправте форму, щоб переконатися, що валідація працює належним чином.
Висновок
Дотримуючись цієї інструкції, ви успішно інтегрували Google reCAPTCHA у свій проект Django, що забезпечує додатковий рівень захисту від спаму та ботів. Насолоджуйтесь безпечним досвідом роботи з вашим веб-додатком!