LoginSignup
4
2

More than 1 year has passed since last update.

DjangoでreCHAPTCHAを導入する

Last updated at Posted at 2021-02-26

djangoでreCAPTCHAを導入しました。

参考になる記事が限定的だったので、書き残しておきます。

django-recapchaがあるのですが、日本語解説記事もないので今回は使ってません。

環境

参考資料

1.API-KEYを発行

reCAPTCHAにアクセスして、SECRET_KEYSITE_KEYを発行します。

参考動画はこちら
本編は、wagtailの話なので冒頭のみ参考に。

2.settings.pyに反映

settings.pySECRET_KEYを反映させます。

settings.py
GOOGLE_RECAPTCHA_SECRET_KEY = *******************************

3.htmlファイルに反映

下記を追加します

<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="6LffvWgaAAAAAEwCrsrcNLJr8DyjgnUx4p5JMLed"></div>

4.views.pyに反映

下記を追加します。
大体、if form.is_valid():の下に書きますよね。

views.py
from django.conf import settings
from django.contrib import messages
import requests

recaptcha_response = request.POST.get('g-recaptcha-response') #POSTされたデータを受けとる
data = {
   'secret': settings.GOOGLE_RECAPTCHA_SECRET_KEY,
     'response': recaptcha_response
}
r = requests.post('https://www.google.com/recaptcha/api/siteverify', data=data)
result = r.json()

完了です。

django-rechapchaが用意されてるので、本当は使うべきですね。
上手くできなければ、コメントください。

変更履歴

  • 2021.08.01 追記・修正
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2