Skip to main content

Django Projesi Oluşturma ve MySQL Veritabanına Bağlama 🚀

Bu rehberde, Django uygulamanızı MySQL veritabanına bağlama sürecini öğreniyorsunuz. İlk adım olarak Django'yu kuracak, veritabanınızı oluşturacak ve gerekli ayarları yaparak Django projenizi canlıya almak için gereken temelleri atacaksınız.


1. MySQL Veritabanı Hazırlığı

1.1 MySQL Sunucusuna Bağlanma

İlk olarak MySQL sunucusuna root kullanıcısı ile bağlanarak, veritabanı ve kullanıcı oluşturacağız:

sudo mysql

Bu komutla MySQL komut satırına bağlanmış olacaksınız.

1.2 Veritabanı ve Kullanıcı Oluşturma

Yeni bir veritabanı (rabisu_blog_db) ve Django'nun bağlantı kuracağı bir kullanıcı (rabisu_user) oluşturun.


CREATE DATABASE rabisu_blog_db;
CREATE USER 'rabisu_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'guclu_parola';
GRANT ALL ON rabisu_blog_db.* TO 'rabisu_user'@'localhost';
FLUSH PRIVILEGES;

Bu işlem, rabisu_blog_db adında bir veritabanı ve rabisu_user kullanıcısını oluşturur.


2. MySQL Yapılandırma Dosyasını Düzenleme

2.1 my.cnf Dosyasına Bağlantı Bilgilerini Ekleme

Veritabanı bağlantı bilgilerini merkezi bir dosya olan my.cnf içinde saklamak, güvenlik açısından daha iyi bir yöntemdir. Bu dosyayı düzenlemek için şu komutları kullanabilirsiniz:


sudo nano /etc/mysql/my.cnf

Aşağıdaki bilgileri dosyanın sonuna ekleyin:


[client]
database = rabisu_blog_db
user = rabisu_user
password = guclu_parola
default-character-set = utf8

2.2 MySQL'i Yeniden Başlatma

Yapılandırma dosyasını düzenledikten sonra MySQL hizmetini yeniden başlatın:


sudo systemctl daemon-reload
sudo systemctl restart mysql

3. Django İskeletini Oluşturma

3.1 Uygulama Dizini Oluşturma ve Sanal Ortamı Etkinleştirme

Django uygulamanızı geliştirmek için bir dizin oluşturun ve sanal ortamınızı başlatın:


mkdir rabisu_django_proje
cd rabisu_django_proje
python3 -m venv env
. env/bin/activate

3.2 Django’yu Kurma

Sanal ortamda Django'yu kurmak için şu komutu çalıştırın:


pip install django

3.3 Proje İskeletini Başlatma

Django projenizi başlatmak için aşağıdaki komutu kullanın:


django-admin startproject blog
cd blog

Bu işlem, Django'nun varsayılan proje yapısını oluşturur.


4. MySQL Bağlantısı için mysqlclient Kurulumu

Django’nun MySQL veritabanı ile iletişim kurabilmesi için mysqlclient Python kütüphanesini kurmamız gerekiyor.

4.1 Gerekli Bağımlılıkları Yükleme

Öncelikle MySQL için gerekli başlık dosyalarını yükleyin:


sudo apt install libmysqlclient-dev default-libmysqlclient-dev

4.2 mysqlclient Kütüphanesini Kurma

mysqlclient kütüphanesini pip kullanarak sanal ortamınıza yükleyin:


pip install mysqlclient

5. Django Ayarlarını Yapılandırma (settings.py)

5.1 settings.py Dosyasını Düzenleme

Django’nun yapılandırma dosyasını açın:


nano ~/my_blog_app/blog/blog/settings.py

Zaman dilimi ve ALLOWED_HOSTS ayarlarını şu şekilde yapılandırın:


TIME_ZONE = 'Europe/Istanbul' # 🔑 Istanbul saat dilimi
ALLOWED_HOSTS = ['Sanal-Sunucu-IP-Adresi'] # 🔑 Kendi IP adresinizi buraya yazın
STATIC_ROOT = os.path.join(BASE_DIR, 'static') # 🔑 Statik dosyalar için yolu tanımlar

5.2 Veritabanı Bağlantısını Yapılandırma

DATABASES bölümünü MySQL'e bağlanacak şekilde aşağıdaki gibi güncelleyin:


DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 🔑 MySQL motorunu kullanmasını sağlar
'OPTIONS': {
'read_default_file': '/etc/mysql/my.cnf', # 🔑 Bağlantı bilgilerini my.cnf dosyasından okur
},
}
}

6. İlk Göçleri Çalıştırma ve Süper Kullanıcı Oluşturma

6.1 Göçleri Çalıştırma

Değişiklikleri veritabanına uygulamak için aşağıdaki komutları çalıştırın:


cd blog
python manage.py makemigrations
python manage.py migrate

6.2 Süper Kullanıcı Oluşturma

Django yönetim paneline erişim için bir süper kullanıcı oluşturun:


python manage.py createsuperuser

7. Güvenlik Duvarı Ayarlarını Yapılandırma

7.1 Güvenlik Duvarı Ayarlarını Yapılandırma

Django'nun kullandığı portu (8000) açmak için:


sudo ufw allow 8000

7.2 Sunucuyu Başlatma ve Bağlantıyı Test Etme

Sunucuyu başlatarak bağlantıyı test edin:


python manage.py runserver 0.0.0.0:8000

Tarayıcınızda http://Sanal-Sunucu-IP-Adresi:8000/ adresine giderek Django'nun varsayılan sayfasını görmelisiniz.


Sıkça Sorulan Sorular (SSS)

  1. my.cnf dosyasını neden kullanmalıyım? Bu dosya, veritabanı bağlantı bilgilerinizi güvenli bir şekilde saklar ve hassas verilerin kaynak kodunda yer almasını engeller.

  2. mysqlclient yerine başka bir bağlayıcı kullanabilir miyim? Evet, mysqlclient dışında başka bağlayıcılar da kullanılabilir, ancak bu kütüphane Django ile uyumlu ve hızlıdır.

  3. createsuperuser komutunu ne zaman çalıştırmalıyım? Süper kullanıcı oluşturulmadan önce, veritabanındaki gerekli tabloların oluşturulmuş olması gerekir. Bu yüzden migrate işleminden sonra createsuperuser komutunu çalıştırmalısınız.

  4. ALLOWED_HOSTS ne işe yarar? ALLOWED_HOSTS, Django’nun hangi IP adreslerinden gelen istekleri kabul edeceğini belirler. Güvenlik için, yalnızca uygulamanızın erişilmesini istediğiniz IP adreslerini buraya eklemelisiniz.

  5. Sunucu üzerinde Django'yu test etmek için 127.0.0.1 kullanabilir miyim? Evet, ancak dışarıdan erişim için sunucunun IP adresini kullanmalısınız.

Sonuç

Artık Django uygulamanız için temel altyapıyı kurdunuz ve MySQL ile bağlantıyı başarıyla yapılandırdınız. Geliştirmeye Rabisu Bulut Sanal Sunucu üzerinde devam edebilirsiniz!