易于使用的 django 验证码或带有验证码的注册应用程序?
Posted
技术标签:
【中文标题】易于使用的 django 验证码或带有验证码的注册应用程序?【英文标题】:Easy-to-use django captcha or registration app with captcha? 【发布时间】:2011-01-17 13:30:18 【问题描述】:我想在 Django 中使用验证码实现用户注册。 django-registration 应用的工作流程很棒,但它没有验证码。
您建议使用什么验证码? 是否有其他一些注册+验证码的变体或有关该主题的有用链接?
这应该适用于 Django-1.1 并且安装起来不会太难。
【问题讨论】:
【参考方案1】:django-registration 是相当可扩展的。扩展它的一种方法是提供自定义注册表单。我建议使用reCaptcha,例如使用来自here (archived) 的小部件和表单字段。然后就是写一个自定义的表单类和注册后端一样简单(比听起来简单):
from registration.backends.default import DefaultBackend
from registration.forms import RegistrationForm
class RecaptchaRegistrationForm(RegistrationForm)
recaptcha = ReCaptchaField(label="I'm a human")
class RecaptchaRegistrationBackend(DefaultBackend):
def get_form_class(self, request):
return RecaptchaRegistrationForm
最后一步是告诉 django-registration 使用你的后端。 docs 中描述了该步骤(我找不到文档的 html 版本,抱歉)
【讨论】:
小部件和表单字段的链接给出了 502 幸运的是,archive.org 有一个副本:web.archive.org/web/20090606022756/http://lobstertech.com/2008/… 您可以避免子类化注册后端,将urls.py
中的表单类设置为后端参数。例如:(r'^register/$', RegistrationView.as_view(form_class=RegistrationForm))
.【参考方案2】:
对于像我这样迟到的人来说,现在有很多解决方案,很容易安装:
http://code.google.com/p/django-simple-captcha/ http://code.google.com/p/django-captcha/ https://github.com/inueni/django-captcha-field https://github.com/justquick/django-math-captcha https://github.com/marconi/django-mollom 使用第三方 Mollom 服务(提供验证码和垃圾邮件过滤服务)。我已经成功设置了 Django Mollom 和 Django Simple Captcha,最困难的部分是在我的 Mac 上安装 PIL 时刮胡子。实现代码就像每个文档所建议的那样简单。
【讨论】:
【参考方案3】:我刚遇到这个问题,但解决方法很简单。
我正在使用django-registration,并且我想要一个用于用户注册的 reCAPTCHA 字段。只需 1 分钟:
下载django-recaptcha (pip install django-recaptcha
)
在您的项目中安装它。也就是说,将“captcha”文件夹复制到您的项目中,将“captcha”添加到INSTALLED_APPS
,并将您的RECAPTCHA_PUBLIC_KEY
和RECAPTCHA_PRIVATE_KEY
密钥也添加到settings.py(如安装说明中所述)
打开registration/forms.py
并在class RegistrationForm(forms.Form):
中添加此字段
captcha = ReCaptchaField()
您还必须导入:
from captcha.fields import ReCaptchaField
就是这样。不到一分钟。
【讨论】:
不开玩笑 - 按照你的指示,不到一分钟.. 谢谢! 但是如果注册包没有复制到你的项目中,而是通过 pip install ... 安装呢?以上是关于易于使用的 django 验证码或带有验证码的注册应用程序?的主要内容,如果未能解决你的问题,请参考以下文章