Home>>Django>>Python Django Serisi #3 | Veritabanı & Models & Admin
Django

Python Django Serisi #3 | Veritabanı & Models & Admin

Hemen konuya geçelim. Veritabanına model oluşturmadan önce, Django admin paneline giriş yapabilmek için kullanıcı oluşturmak gerekiyor. Önce bir admin panelini görelim.

Yönetici Hesabı Oluşturma

Aşağıdaki komut ile super useri oluşturalım.

python manage.py createsuperuser

Oluşturduğumuz bilgiler ile http://127.0.0.1:8000/admin/ adresinden admin paneline giriş yapabiliriz.

Veritabanı Model Oluşturma — Models.py

Django’nun içinde veritabanı olarak SQLite hazır geliyor. Bizde bu düzeni bozmadan SQLite’dan devam edeceğiz.

Django veritabanı ORM yapısını kullanmaktadır. Uygulama(account) dosyamızın içinde bulunan Models.py dosyasını açalım.

Veritabanında tutacağımız verileri düşünelim.

  • Fotoğrafın çekildiği bölge (CharField)
  • Fotoğraf açıklaması (TextField)
  • Fotoğrafın kendisi (ImageField)
  • Fotoğrafın kategorisi (CharField)

Yani bize veritabanı tablomuzda 4 sütun gerekiyor. O zaman modellemeye başlayalım.

Galeri adında sınıf oluşturalım. Sınıfa verdiğimiz isim tablo ismi olacaktır.

from django.db import models
from random import choices

class Galeri(models.Model):
    bolge = models.CharField("Bölge", max_length=45, null=False)
    resim = models.ImageField("Resim", upload_to="uploads", null=False)
    aciklama = models.TextField("Açıklama", null=True, blank=True)
    kategori = models.CharField("Kategori", max_length=25, choices=[('0', 'Yer'), ('1', 'Gök'), ('2', 'Derya')])
    
    # Admin panelinde verilerin görünen adı
    def __str__(self):
        return self.aciklama

    # Admin panelinde görünecek olan Modelin adı
    class Meta:
        verbose_name_plural = "Galeri"

Modelimizi oluşturduk. Şimdi makemigrations yapıp veritabanı için hazır hale getirelim.

python manage.py makemigrations

ve ardından migrate işlemi ile veritabanını güncelleyelim.

python manage.py migrate

Artık modelimizi veritabanında kullanabiliriz. Ancak Admin paneline girersek eklediğimiz modeli göremeyeceğiz. Bu yüzden admin.py dosyasında bir kaç satır kod eklememiz gerekiyor.

Verilerin Admin Panelinde Görünürlüğü ve Kontrolü

Artık verileri admin panelinden kontrol etme vakti geldi. ‘models.py’ dosyasını kapatıp, ‘admin.py’ dosyasını açalım. ‘admin.py’ dosyasında, panel üzerinde görünecek verileri ayarlıyoruz. İlk önce oluşturduğumuz modeli import etmemiz gerekiyor.

from django.contrib import admin
from django.db import models
from .models import Galeri

class LISTELE(admin.ModelAdmin):
    list_display = ("bolge", "resim", "aciklama", "kategori")
    list_editable = ("resim", "kategori",)
    select_related = "bolge",

admin.site.register(Galeri, LISTELE)

Yukarıdaki koddan kısaca bahsedecek olursak;

  • list_display: Görünmesini istediğimiz verileri listeler,
  • list_editable: Listelenen verileri hızlı düzenlemeyi sağlar,
  • select_related: Selectbox(kategori seçimi) seçeneğini kullanır.

Admin paneline tekrar girip bakarsak Galeri adında modelimiz görünecektir. add butonuna tıkladığımız zaman veri ekleme sayfasına yönlendirecektir. Verileri girip kayıt edelim, bakalım olmuş mu?

Tüm adımları doğru yaptıysak sorunsuz kayıt etmelidir 🙂 Proje dosyamızda bulunan uploads/uploads dizini içerisine yüklediğimiz resim gelecektir. Buraya kadar sorun görünmüyorsa, artık diğer konuya geçebiliriz.

Bir sonraki yazımda, veritabanında bulunan verileri web sitemizde görünür yapacağız.

Görüşmek üzere. 🙋‍♂️

Github

Adblock Detected

Lütfen reklam engelleyicinizi devre dışı bırakarak bizi destekleyin.

Refresh Page