Kategoriler
Django

Django settings.py Dosyasi: Projenizin Kalbi

Django settings.py Dosyasinin Onemi ve Projedeki Rolu

Django projelerinde settings.py dosyasi, tum proje ayarlarinin merkezi olarak yonetildigi kritik bir yapi tasidir. Bu dosya sayesinde veritabanı baglantilari, guvenlik ayarlari, uluslararasilasma (i18n), statik dosyalar ve diger temel konfigurasyonlar yonetilir. Dogru sekilde ayarlanmis bir settings.py dosyasi, projenizin guvenli, performansli ve esnek bir sekilde calismasini saglar.

Django’nun esnek yapisi sayesinde settings.py dosyasindaki ayarlar degistirilebilir, ortama gore ozellestirilebilir ve ihtiyac duydugunuz sekilde gelistirilebilir. Ancak, baslangic asamasinda dogru ayarlarin yapilmamasi, ilerleyen donemde buyuk degisiklikler gerektirebilir. Bu nedenle, settings.py dosyasinin temel ayarlarini anlamak, uzun vadede projenizi daha saglam ve surdurulebilir hale getirecektir.

Bu makalede, Django settings.py dosyasinin en onemli ayarlarini tek tek ele alacagiz.

Django settings.py Dosyasinin Temel Ayarlari

1. Proje Dizini ve Temel Ayarlar

BASE_DIR

BASE_DIR, projenin ana dizin yolunu belirtir. Bu ayar, proje icindeki dosya yollarini olustururken kullanilir.

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY

Bu anahtar, Django’nun sifreleme islemlerinde kullanilir ve gizli tutulmalidir.

SECRET_KEY = 'gizli-anahtar'

DEBUG

DEBUG = True ise ayrintili hata mesajlari goruntulenir. Uretim ortaminda False olarak ayarlanmalidir.

DEBUG = True

ALLOWED_HOSTS

Hangi domain veya IP adreslerinin projeye erisebilecegini belirler.

ALLOWED_HOSTS = ['example.com', '127.0.0.1']

2. Uygulama ve Middleware Konfigurasyonlari

INSTALLED_APPS

Projenizde aktif olan uygulamalari tanimlar.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

MIDDLEWARE

Django’nun HTTP isteklerini islemesini saglayan ara katman yazilimlari (middleware) buradan yonetilir.

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

3. URL ve Sablon Ayarlari

ROOT_URLCONF

Projenin ana URL yonlendirme dosyasini belirler.

ROOT_URLCONF = 'myproject.urls'

TEMPLATES

Django’nun sablon motorunu ve sablon dizinlerini belirler.

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR / 'templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

4. Veritabani Ayarlari

DATABASES

Projenin veritabanini tanimlar. Varsayilan olarak SQLite kullanilir, ancak PostgreSQL, MySQL gibi veritabanlari da eklenebilir.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

5. Kullanici ve Guvenlik Ayarlari

AUTH_PASSWORD_VALIDATORS

Kullanici sifrelerinin guvenliginin saglanmasi icin kullanilan validasyon ayarlari.

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

6. Dil ve Zaman Ayarlari

LANGUAGE_CODE

Projenin varsayilan dilini belirler.

LANGUAGE_CODE = 'tr'

TIME_ZONE

Zaman dilimini belirler.

TIME_ZONE = 'Europe/Istanbul'

7. Statik ve Ortam Dosyalari

STATIC_URL

Statik dosyalarin web uzerinden sunulacagi yolu belirler.

STATIC_URL = '/static/'

Sonuc

Django projelerinde settings.py dosyasi, tum konfigurasyon ayarlarinin merkezi oldugu icin buyuk onem tasir. Dogru bir sekilde ayarlanmis settings.py, projenizin performansini, guvenligini ve gelistirme surecini kolaylastirir. Bu nedenle, projenize baslarken temel ayarlari iyi anlamak ve duzgun bir sekilde sekillendirmek uzun vadede buyuk avantaj saglayacaktir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir