15 Ocak 2015 Perşembe

Django Google reCAPTCHA ve noCAPTCHA Kullanımı

Bu yazıda basit bir şekilde google'ın captcha uygulamalarını sitemize nasıl import edebileceğimizden bahsedeceğiz.
reCAPTCHA
İlk önce https://www.google.com/recaptcha/intro/index.html adresinden kendimiz için bir recaptcha oluşturuyoruz. Buradaki Get reCAPTCHA butonuna tıkladığınızda size Site key ve Secret key oluşturacaktır. Bunları projemizde kullanacağız.
Bu işlemi yaptıktan sonra https://github.com/praekelt/django-recaptcha adresinden uygulamayı indiriyoruz. İndirdikten sonra
cd Downloads/django-recaptcha-develop/
sudo python setup.py install
komutlarını sırası ile çalıştırıyoruz. Kurduktan sonra settings.py dosyasında INSTALLED_APPS değişkenine uygulamayı eklemeliyiz.
INSTALLED_APPS = (
.....
    'captcha',
)
Daha sonra şu satırları settings.py dosyasına ekliyoruz.
RECAPTCHA_PUBLIC_KEY = 'Googledan aldığınız Site Key'
RECAPTCHA_PRIVATE_KEY = 'Googledan aldığınız Secret Key'
RECAPTCHA_USE_SSL = True
Son satır reCAPTCHA'nın SSL kullanması ile ilgili. Eğer isterseniz bu satırı kaldırabilirsiniz. reCAPTCHA'yı kullanmak için artık her şey hazır. Şimdi basitçe kullanalım. İlk basit bir form oluşturuyoruz.
from django import forms
from captcha.fields import ReCaptchaField

class reCAPTCHAForm(forms.Form):
    captcha = ReCaptchaField()
Şimdi bu formu kullanalım. Basit bir view oluşturalım.
from django.shortcuts import render
from go.forms import reCAPTCHAForm
# Create your views here.
def go(request):
 if request.method == "POST":
     form = reCAPTCHAForm(request.POST)
     if form.is_valid():
  """ Form başarılı ise yapılacaklar """
 else:
     form = reCAPTCHAForm() 
 return render(request, 'index.html', locals())
Bu viewa ait olan index.html şablonun içeriği ise şu şekilde;
 
{% csrf_token %} {{ form }}
Artık kullanabilirsiniz. Ekran çıktımız şu şekilde olacaktır.


noCAPTCHA
noCAPTCHA'nın reCAPTCHA'dan neredeyse hiç bir farkı yok. Hemen ufak tefek değişikliklerden bahsedelim. Github sayfasını sizinle paylaşalım. https://github.com/ImaginaryLandscape/django-nocaptcha-recaptcha Bu sayfada kullanımı oldukça basit bir şekilde anlatılmış.
İlk önce kurulum yapıyoruz.
pip install django-nocaptcha-recaptcha
Daha sonra aynı şekilde INSTALLED_APPS'e ekliyoruz.
INSTALLED_APPS = (
....
    'nocaptcha_recaptcha',
)
settings.py dosyasına ayarlamaları ekliyoruz.
NORECAPTCHA_SITE_KEY = 'Googledan aldığınız Site Key'
NORECAPTCHA_SECRET_KEY = 'Googledan aldığınız Secret Key'
Form dosyasını şu şekilde değiştiriyoruz.
from django import forms
from nocaptcha_recaptcha.fields import NoReCaptchaField

class reCAPTCHAForm(forms.Form):
    captcha = NoReCaptchaField()
View dosyamız
from django.shortcuts import render
from go.forms import reCAPTCHAForm
# Create your views here.
def go(request):
 if request.method == "POST":
     form = reCAPTCHAForm(request.POST)
     if form.is_valid():
                """ Doğru ise yapılacaklar """
 else:
     form = reCAPTCHAForm() 
 return render(request, 'index.html', locals())
index.html şablon dosyamız


 
{% csrf_token %} {{ form }}
Burada dikkat etmeniz gereken ekstrandan Google'ın javascript dosyasını çağırıyor olmamız.

0 yorum :

Yorum Gönder