20 Mart 2014 Perşembe

Yönetim Paneli

Django'nun en güçlü taraflarından biri otomatik gelen yönetim panelidir. Daha önce herhangi bir dil ile web sitesi yaptıysanız kendinize yönetim paneli yazmanız gerektiğini biliyorsunuzdur. Yönetim paneli çoğunlukla veritabanı içerisindeki yazılara,kategorilere, yorumlara müdahale etmek için kullanılan bir paneldir. Açıkçası bir web sitesi yapmanın en can sıkıcı taraflarından biri yönetim paneli yapmaktır. İşte Django bize burada muhteşem bir kolaylık sağlıyor ve yönetim panelini hazır bir şekilde kullanımımıza sunuyor. Yönetim panelinin amacı her zaman aynıdır. Ekstra durumlar pek fazla bulunmaz. Veritabanına müdahale etmek için kullanılır. Django geliştiricileri bu rutin işlemleri bizim için düşünmüşler.
Yeni oluşturduğunuz bir projenin settings.py dosyasını açarsanız şu kısmı göreceksiniz.
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)
Yönetim(admin) uygulaması projeye dahil edilmiş bir şekilde gelmektedir. urls.py dosyası içerisinde tanımlı bir şekildedir.
from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
)
admin uygulaması django.contrib modülünün bir parçasıdır. INSTALLED_APPS değişkenine baktığınız zaman admin uygulamasından başka olarak sessions,messages gibi başka uygulamaları da barındırmaktadır. Tarayıcıda localhost:8000/admin yazdığınızda yönetim paneline ulaşırsınız. İsterseniz değiştirebilirsiniz.
urlpatterns = patterns('',
    url(r'^yonetim/', include(admin.site.urls)),
)
Artık localhost:8000/yonetim diyerek ulaşabiliyoruz. Yönetim panelini açtığınız zaman kullanıcı adını ve şifresini soran bir sayfa ile karşılaşacaksınız. Buradaki kullanıcı adını ve şifreyi daha önce atamıştık. İsterseniz yeni bir proje üzerinden hatırlayalım.
İlk önce Okul adında bir proje oluşturuyoruz.
django-admin.py startproject Okul
Aslında bunları yazmamıza gerek yok ama biz yinede sıradan gidelim. Projemizi oluşturduktan sonra porje içerisinde yonetim uygulamasını oluşturuyoruz.
python manage.py startapp yonetim
Uygulamayı oluşturduktan sonra yonetim/models.py dosyasını açalım ve okul ile ilgili modelimiz oluşturalım.
from django.db import models

class OgretimElemani(models.Model):
 adi = models.CharField(max_length=50)
 soyadi = models.CharField(max_length=50)
 eposta = models.EmailField(blank=True)

 def __unicode__(self):
  return u'%s, %s'%(self.soyadi,self.adi)


class Dersler(models.Model):
 adi = models.CharField(max_length=50)
 ogretim_elemani = models.ForeignKey(OgretimElemani)

 def __unicode__(self):
  return u'%s'%(self.adi)


class Ogrenciler(models.Model):
 adi = models.CharField(max_length=50)
 numarasi = models.CharField(max_length=50)
 dersler = models.ManyToManyField(Dersler)

 def __unicode__(self):
  return u'%s, %s'%(self.adi,self.numarasi)
Modeli oluşturduğumuza göre artık tabloları oluşturabiliriz. Bildiğiniz gibi komut satırına şu komutu yazıyoruz.
python manage.py syncdb

Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table yonetim_ogretimelemani
Creating table yonetim_dersler
Creating table yonetim_ogrenciler_dersler
Creating table yonetim_ogrenciler

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): 
Tabloları oluşturduktan sonra bize yetkili bir kullanıcı oluşturmak isteyip istemediğimizi soruyor. Bu soruya yes dedikten sonra username(kullanıcı adı), e-posta(Email address) ve şifre(password) istiyor. Burada kullanıcı adını ve E-posta kısımlarını doldurmak zorunda değilsiniz. Eğer kullanıcı adını doldurmazsanız varsayılan olarak root olacaktır. Şifre kısmını iki kere girmek zorundasınız. Şifreyi de girdikten sonra süper kullanıcı oluşturulur.
python manage.py runserver
komutu ile projeyi server üzerinde çalıştırdıktan sonra tarayıcıya localhost:8000/admin yazarak yönetim paneline ulaşın. Karşınıza şu şekilde bir pencere gelecektir.
Burada oluşturmuş olduğunuz kullanıcı adı ve şifre ile giriş yaparak yönetim paneline girebilirsiniz. Eğer giremiyorsanız süper kullanıcı oluşturduğunuzdan emin olun. Eğer süper kullanıcı oluşturmadıysanız şu komut ile oluşturabilirsiniz.
python manage.py createsuperuser
Giriş yaptıktan sonra kullanıcıları düzenleyebileceğiniz bir sayfa ile karşılaşacaksınız. Fakat bu sayfa İngilizce ilk önce sayfayı Türkçe yapalım. settings.py dosyası içerisindeki LANGUAGE_CODE değişkenini şu hale getirelim.
LANGUAGE_CODE = 'tr-TR'
Artık sayfamız türkçe ama oluşturduğumuz veritabanı ait tabloları göremiyoruz. Bu alanları eklemek zorundayız. İlk önce settings.py içerisindeki INSTALLED APPS değişkenine oluşturduğumuz uygulamayı ekliyoruz.
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
 'yonetim',
)
Ekleme işlemini yaptıktan sonra yonetim uygulaması içerisindeki admin.py dosyasına şu satırları ekliyoruz.
from django.contrib import admin

from yonetim.models import *

admin.site.register(OgretimElemani)
admin.site.register(Dersler)
admin.site.register(Ogrenciler)
Sayfayı yenilediğiniz zaman yonetim uygulaması içeriğinin geldiğini göreceksiniz.
Yönetim paneli bize kullanıcılar,gruplar ve veritabanları üzerinde işlemler yapma olanağı verir.
Django'nun yönetim paneli her uygulama içerisindeki admin.py içerisine bakar ve eklemesi gereken yerleri -veritabanı alanları- gibi kendi içerisine ekler ve kullanıcıya üzerlerinde işlem yapma olanağı verir.
Kaynakça

0 yorum :

Yorum Gönder