8 Haziran 2014 Pazar

Giriş Görünümü Oluşturma

Django'nun bize sağlamış olduğu giriş sayfasını kullanarak kullanıcılara giriş yaptırdık. Burada Django bizim için giriş ve çıkışları otomatik olarak yapar. Peki ya kendi giriş görünümümüzü kendimiz tasarlamak istersek. Tabi ki yapabiliriz. Hazırlamış olduğumuz yonetim görünümünü düzenleyerek, giriş ve çıkış işlemlerini bu görünüm üzerinden yapalım.
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth import *

def yonetim(request):
 if request.GET.get('cikis'):
  logout(request)
  return HttpResponseRedirect('/yonetim/')

 if request.POST.get('giris'):
  giris_formu = AuthenticationForm(data=request.POST)
  if giris_formu.is_valid():
   kullaniciadi = request.POST['username']
   sifre = request.POST['password']
   kullanici = authenticate(username=kullaniciadi,password=sifre)
   if kullanici is not None:
    if kullanici.is_active:
     login(request,kullanici)
 else:
  giris_formu = AuthenticationForm()

 return render_to_response('yonetim_giris.html',locals(),context_instance = RequestContext(request))
Burada yaptığımız işlemlerin bazılarını satır satır açıklayalım.
  • 1.satır: Kullanacağımız giriş formunu içe aktardık.
  • 2.satır: Kullanacağımız login(),logout() ve authenticate() gibi fonksiyonları içe aktardık.
  • 5.satır: Eğer GET metodu ile çıkış değeri gönderilirse logout() fonksiyonu ile kullanıcının çıkış yapmasını sağladık. Ardından tekrar yonetim görünümüne yönlendirdik.
  • 10. ve 19. satır: Bu satırlarda giriş formunu değişkene atadık.
  • 14.satır: Daha önce bahsetmiş olduğumuz authenticate() fonksiyonu ile kullanıcıyı onayladık. Eğer onaylama işlemi olmaz ise. Kullanıcı uyarılır.
  • 17.satır: Eğer kullanıcı aktif durumdaysa login() fonksiyonu ile giriş yaptırdık.
Yönlendirme yaptığımız yonetim_giris.html şablonunu şu şekilde hazırlayalım.
<!DOCTYPE html>
<html>
<head>
    <title>Yönetim</title>
    <link rel="stylesheet" type="text/css" href="/dosyalar/style.css" />
</head>
<body>
<h2>Yönetim İşlemleri</h2>

{% if request.user.is_authenticated %}
    <h3>Hoş geldin, {{request.user.get_full_name}}</h3>

    <div><a href="/doktorlar">Doktor İşlemleri</a></div>
    <div><a href="/hasta-listesi">Hasta İşlemleri</a></div>
    <div><a href="/poliklinik-likstesi">Poliklinik İşlemleri</a></div>
    <a href="?cikis=cikis">Çıkış</a>
{% else %}
<h3>Giriş Formu</h3>
<form method="POST">
    {% csrf_token %}
    <div>
         {{ giris_formu }}
    </div>

    <input type="submit" name="giris" value="Giriş Yap" />
</form>
{% endif %}
</body>
</html>
Kendi giriş görünümümüzü yazmış olduk. Eğer isterseniz bu şekilde kendi giriş görünümünüzü kendiniz yazabilir, isterseniz Django'nun size sağlamış olduğunu kullanabilirsiniz.
Kaynakça
  • Mustafa Başer - Django Kitabı

0 yorum :

Yorum Gönder