Включая CAPTCHA на странице регистрации пользователя с Django - PullRequest
0 голосов
/ 29 марта 2011

Я новичок в Джанго. Я создал приложение, которое имеет страницу входа / регистрации пользователя. Теперь я хочу включить CAPTCHA также на странице регистрации. Может кто-нибудь подсказать мне, как реализовать это в Django, так как я довольно новичок в этом. По поиску я обнаружил, что есть много модулей, которые выполняют функцию из коробки. Если это путь, то какое приложение является лучшим выбором? Также я обнаружил, что большинство из них были объяснены на основе использования форм Django. Но я использовал простые формы HTML вместо форм Django. Любая помощь будет оценена.

Ответы [ 4 ]

3 голосов
/ 29 марта 2011

Ваш вопрос о том, какое стороннее решение «лучше», субъективен, и stackoverflow, как правило, не любит отвечать на субъективные вопросы.Потратьте некоторое время и оцените каждый из них в свете ваших потребностей.

Вам часто не нужна картинка с картинкой.Даже простой вопрос типа "какого цвета апельсин?"остановит большинство спам-ботов.Я задал простой вопрос в своей регистрационной форме, попросив пользователя ввести доменное имя сайта.Просто, но очень эффективно.Вы также можете включить поле ввода в форму и скрыть его с помощью CSS (display: none).Если этот ввод вернется к вам заполненным, есть вероятность, что бот пытается зарегистрироваться.

Не имеет значения, что эти сторонние решения используют формы Django, а вы используете "простой HTML",В вашем представлении регистрации вы просто обрабатываете request.POST.Неважно, как была сгенерирована форма.

2 голосов
/ 29 марта 2011

Я выбираю reCAPTCHA от Google , и его легко интегрировать.

Здесь - учебник, который я написал для интеграции Google reCAPTCHA в формы. Надеюсь, это поможет.

1 голос
/ 29 марта 2011

Я следовал инструкциям на http://www.marcofucci.com/tumblelog/26/jul/2009/integrating-recaptcha-with-django/, чтобы создать собственный виджет и поле reCAPTCHA с помощью клиента Python. Затем вы можете добавить его в форму с помощью:

recaptcha = ReCaptchaField()
1 голос
/ 29 марта 2011

Вы можете написать один, если хотите.По сути, все, что вы делаете, - это генерируете число / слово в своем представлении, внедряете его в шаблон каким-то недружественным роботом способом (например, изображение) и затем проверяете его при отправке формы обратно.

Вывсе еще можете использовать django-simple-captcha, если вы используете формы html вместо форм django.

Аналогичный вопрос: Простая в использовании django капча или приложение регистрации с капчей?

Попробуйте: http://code.google.com/p/django-simple-captcha/

...