python - 在 Django 中实现 recaptcha
问题描述
我正在尝试将 recaptcha 添加到我的评论表单中。我创建了一个帐户并拥有正确的密钥/公钥。我遇到的问题是,当我提交表单时,我的views.py 得到的响应为None 和无效输入响应。
正因为如此,我的评论没有被创建天气我点击“我不是机器人”。
这是在视图中验证 recaptcha 的逻辑
def create_review(request):
if request.method == 'POST':
''' Begin reCAPTCHA validation '''
recaptcha_response = request.POST.get('g-recaptcha-response')
url = 'https://www.google.com/recaptcha/api/siteverify'
values = {
'secret': settings.RECAPTCHA_PRIVATE_KEY,
'response': recaptcha_response
}
data = urllib.parse.urlencode(values).encode()
req = urllib.request.Request(url, data=data)
response = urllib.request.urlopen(req)
result = json.loads(response.read().decode())
''' End reCAPTCHA validation '''
print(values)
print(result)
if result['success']:
print(result['success'])
name = request.POST.get('name')
rating = request.POST.get('rating')
message = request.POST.get('message')
review = Testimonial(name=name, rating=rating, message=message)
review.save()
这些是打印的变量
{'secret': 'private_key', 'response': None}
{'success': False, 'error-codes': ['invalid-input-response']}
这是我的 html 表单中的 html
<div class="g-recaptcha" data-sitekey="public_site_key"></div>
任何帮助表示赞赏。谢谢你。
解决方案
推荐阅读
- python - 是否有一个 numpy 函数可以在多维数组中查找数组?
- amazon-web-services - AWS IAM 角色的条件
- macos - 如何知道我是如何在 macOS 上安装 Node 的?
- python - 如何在 Python 中实现二进制搜索到这个程序中,而不是使用输入
- latex - LaTeX IEEEtran-de:添加 URL 访问日期
- excel - 是否有通用的基准测试代码可用于确定您的 excel/vba 代码中的性能问题?
- python - 训练更快的 RCNN 时将所有张量保留在 GPU 中
- c# - BizTalk XML 默认传输管道在处理时失败
- ruby-on-rails - CircleCI:为什么有两个工作:构建和测试不是 DRY?
- python - 如果经度纬度是对象,则无法使用 folium