14 Mayıs 2014 Çarşamba

Çerezler ( Cookies )

Çerezler, HTTP'de istemci ile sunucu arasındaki bağlantıların takibi için kullanılır. Çerezler, küçük bilgi parçacıklarıdır. Yani sunucu üzerinde belli işlemler yaptıktan sonra bu işlemler kaybolur. Bu işlemlerin kaybolmayıp her seferinde kaldığı yerden devam etmesini istediğiniz durumlarda çerezleri kullanabilirsiniz. Sunucu istemciye bu bilgi parçacığını verir, istemci de sonraki bağlantılarında bu bilgi parçacığını sunucuya tekrar iletir. Tarayıcıya ait tüm sayfalar kapatılana kadar çerezler korunur. Tüm sayfalar kapatıldıktan sonra çerezlerde kaybolur. Şimdi çerezlerin kullanımına bakalım.
Hastahane örneğimiz üzerinden devam edelim. İlk önce hastahane/url.py dosyasında şu url tanımlamasını yapalım.
url(r'^ilk-cerez',yonetim.views.ilk_cerez),
Daha sonra çerezleri kullanacağımız görünümü yonetim/views.py dosyasına ekliyoruz.
def ilk_cerez(request):
 if "takim" in request.COOKIES:
  return HttpResponse(u'Takım çerezi:%s' % request.COOKIES['takim'])
 else:
  return HttpResponse(u'Takım çerezi bulunamadı')

asdasd
Gördüğünüz gibi burada herhangi bir çerez tanımlaması yapmadık. Henüz takim çerezi tanımlanmadığı için ekran çıktısı Takım çerezi bulunamadı. şeklinde olacaktır. Şimdi bu görünümü çerezin değerini GET metodu ile alacak şekilde değiştirelim.
def ilk_cerez(request):
 if "takim" in request.COOKIES:
  #Cookie'ye ulaştığımız satır
  takim_cerezi = request.COOKIES['takim_cerezi']
  return HttpResponse(u'Takım çerezi:%s' % takim_cerezi.decode('utf-8'))
 else:
  takim_cerezi = request.GET.get("takim")
  if not takim_cerezi:
   takim_cerezi = "Türkiye"
  response = HttpResponse(u'Takım çerezi yoktu. Şu değer ile oluşturuluyor: %s' % takim_cerezi.decode("utf-8"))
  #Cookie oluşturduğumuz satır
  response.set_cookie('takim_cerezi',takim_cerezi)
  return response
Eğer GET ile kullanıcıdan bir değer gönderildiyse bunu takim_cerezi'ne değer olarak atadık. Kullanıcı bir değer göndermez ise varsayılan olarak Türkiye değerini verdik. Tarayıcıdan localhost:8000/ilk-cerez değerini ilk girişinizde takim çerezi henüz oluşturulmadığı için koddaki else bloğu çalışacak ve oluşturulacaktır. Bu yüzden çıktı şu şekilde olacaktır.
Django çerezleri request.COOKIES nesnesinde barındırır. Bu nesne bir sözlük gibi davranır. Sayfa ilk tıklandığında takim_cerezi isminde bir çerez tarayıcıda bulunmayacaktır. Bu nedenle else bloğu çalıştırılacaktır. Çerez response.set_cookie('takim',takim_cerezi) satır oluşturulacaktır. Bu çerez istemciye gönderilecektir. İstemci bu çerezi alıp saklayacaktır. Artık sayfa her yenilendiğinde istemci bu çerezi geri gönderecektir. Bu yüzden sayfa bir daha yenilendiğinde çerez oluşturulmuş olduğu için görünüm şu şekilde olacaktır.
Eğer chrome kullanıcısı iseniz https://support.google.com/chrome/answer/95647?hl=tr adresinden çerezleri yönetmeyi öğrenebilirsiniz.
Eğer firefox kullanıcısı iseniz http://support.mozilla.org/tr/kb/%C3%87erez%20Y%C3%B6netimi adresinden çerezleri yönetmeyi öğrenebilirsiniz.
Çerezler oluşturulurken bazı parametreler alabilirler. Daha önce söylediğimiz gibi çerezlerin ömrü varsayılan olarak tarayıcı kapanana kadardır. Eğer biz çerezin ömrünü belirlemek istersek expires parametresini kullanabiliriz. Örneğin oluşturduğumuz çerezin ömrünü bir gün yapmak istersek görünümü şu şekilde değiştirebiliriz.
import time
def ilk_cerez(request):
 if "takim_cerezi" in request.COOKIES:
  #Cookie'ye ulaştığımız satır
  takim_cerezi = request.COOKIES['takim_cerezi']
  return HttpResponse(u'Takım çerezi:%s' % takim_cerezi.decode('utf-8'))
 else:
  takim_cerezi = request.GET.get("takim")
  if not takim_cerezi:
   takim_cerezi = "Türkiye"
  gun = 1
  son_tarih = time.strftime('%a, %d-%b-%Y %H:%M:%S GMT',time.localtime(time.time()+gun*24*60*60))
  response = HttpResponse(u'Takım çerezi yoktu. Şu değer ile oluşturuluyor: %s' % takim_cerezi.decode("utf-8"))
  #Cookie oluşturduğumuz satır
  response.set_cookie('takim_cerezi',takim_cerezi,expires=son_tarih)
  return response
Şimdi tarayıcıdan kontrol edelim.
Kaynakça

0 yorum :

Yorum Gönder