在Django的用户注册页面上包含CAPTCHA

时间:2011-03-29 13:31:49

标签: python django django-models django-templates captcha

我是Django新手。我创建了一个具有用户登录/注册页面的应用程序。现在我想在注册页面中加入CAPTCHA。有人可以指导我如何在Django中实现它,因为我对它很新。在谷歌搜索我发现有很多模块可以开箱即用。如果这是要走的路,那么哪个应用程序是更好的选择?我发现大多数都是在使用Django Forms的基础上解释的。但我使用简单的HTML表单而不是Django表单。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:3)

关于哪个第三方解决方案“更好”的问题是主观的,而stackoverflow通常不喜欢回答主观问题。花一些时间根据您的需求评估每一个。

您通常不需要花哨的图像验证码。即使是一个简单的问题,比如“橙色是什么颜色的?”将停止大多数垃圾邮件机器人。我在注册表上提出了一个简单的问题,要求用户输入网站的域名。简单但非常有效。您还可以在表单上包含一个输入框,并使用CSS(display: none)隐藏它。如果这个输入回复给你填写,机器人试图注册的机会很大。

这些第三方解决方案使用Django表单并使用“简单HTML”并不重要。在注册视图中,您只需处理request.POST即可。表单的生成方式无关紧要。

答案 1 :(得分:2)

我选择Google's reCAPTCHA,并且易于整合。

Here是我编写的用于在表单中集成Google的reCAPTCHA的教程。希望它有所帮助。

答案 2 :(得分:1)

如果你愿意,你可以自己写一个。您实际上所做的就是在视图中生成一个数字/单词,以某种机器人不友好的方式(例如图像)将其嵌入到模板中,然后在回传表单时对其进行验证。

如果您使用的是html表单而不是django表单,您仍然可以使用django-simple-captcha。

类似的问题:Easy-to-use django captcha or registration app with captcha?

尝试:http://code.google.com/p/django-simple-captcha/

答案 3 :(得分:1)

我按照http://www.marcofucci.com/tumblelog/26/jul/2009/integrating-recaptcha-with-django/的说明使用python客户端创建自定义reCAPTCHA小部件和字段。然后,您可以将其添加到表单中:

recaptcha = ReCaptchaField()
相关问题