我是Django新手。我创建了一个具有用户登录/注册页面的应用程序。现在我想在注册页面中加入CAPTCHA。有人可以指导我如何在Django中实现它,因为我对它很新。在谷歌搜索我发现有很多模块可以开箱即用。如果这是要走的路,那么哪个应用程序是更好的选择?我发现大多数都是在使用Django Forms的基础上解释的。但我使用简单的HTML表单而不是Django表单。任何帮助将不胜感激。
答案 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?
答案 3 :(得分:1)
我按照http://www.marcofucci.com/tumblelog/26/jul/2009/integrating-recaptcha-with-django/的说明使用python客户端创建自定义reCAPTCHA小部件和字段。然后,您可以将其添加到表单中:
recaptcha = ReCaptchaField()