Meşe Bilişim Software Testing dersinde öğrendiğimiz Django web çatısı blog yazılarına devam ediyoruz. Bu yazımda oluşturduğumuz web uygulaması için veritabanı kurma işleminden kısaca bahsedeceğim.

(myvenv)  ~/mesebilisimsw/proje/proje 


├── __init__.py

├── settings.py
├── urls.py
└── wsgi.py

Proje dizinimizde settings.py dosyası içerisinde DATABASE alanında web uygulamalarımız için kullanacağımız veritabanını görebiliriz. Django web çatısı varsayılan olarak SQLite veritabanı kullanmaktadır.

Geliştirmekte olduğumuz "blog" uygulaması için biz de SQLite veritabanı kullanacağız. Varsayılan olarak Django bu veritabanını kullandığı için settings.py dosya içeriğinde bir değişiklik yapmamıza gerek yok fakat bu durumun nasıl olduğunu bilmemizde fayda var.

Kısaca SQLite veritabanından bahsetmek gerekirse; açık kaynak kodlu C ve C++ programlama dilleri ile oluşturulmuştur. SQLite kullanımı son derece kolaydır ve bu yönüyle ön plana çıkmaktadır. Platform bağımsız olarak çalışmaktadır.

Konumuza dönecek olursak; settings.py dosyası içerisinde yer alan DATABASE değişkenini inceleyelim.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Varsayılan olarak SQLite veritabanı kullanıldığını söylemiştik, yukarıda da bu durum doğrulanıyor. Django projelerimizde dilersek; PostgreSQL, MySQL ya da Oracle veritabanlarını da kullanabiliriz.

SQLite dışında bir veritabanı kullanımı, şu aşamada bizim için yüksek maliyetli bir iş olduğundan varsayılanı değiştirmeyeceğiz. Bir veritabanının kurulumu dahi vaktimizi alabilir, hızlıca projemize devam edelim.

"ENGINE" değişkeni ile SQLite'ı (veritabanı paketini)  import ediyoruz. Bu şekilde kullanacağımız database belirlenmiş oluyor.

"NAME" değişkeni ile 'db.sqlite3' yani bir SQLite veritabanı tanımlıyoruz. SQLite için dosya konumunu belirtiyoruz. (SQLite her veritabanı için sadece bir dosya oluşturmaktadır.)

Şayet farklı bir veritabanı kullanmak isteseydik ENGINE değişkenin aldığı değerleri şu şekilde değiştirmemiz gerekirdi;

MySQL => django.db.backends.mysql
Oracle => django.db.backends.oracle
PostgreSQL => django.db.backends.postgresql_psycopg2

Veritabanı ile ilgili daha fazla değişken ve detaylı anlatım bu yazının hedefi olmadığı için ayrıntıları yazıya dahil etmeyeceğim. Django ile proje geliştirirken daha fazlasını bilmek isteyenler https://docs.djangoproject.com/en/1.9/ref/databases/ adresine göz atabilirler.

Eksik yada hatalı bir anlatım mevcut ise lütfen yorum bölümünde paylaşarak katkıda bulununuz.