Django: Python ile Web Geliştirmede Devrim
7 dakikalık okuma
25 May 2023

Django: Python ile Web Geliştirmede Devrim

Django, web uygulamalarının geliştirme sürecini basitleştiren güçlü ve popüler bir Python web framework'üdür. Model-Görünüm-Kontrolcü (MVC) mimari desenini takip eder ve yeniden kullanılabilir bileşenlerin kullanımını teşvik eder, bu da ölçeklenebilir ve bakımı kolay web uygulamaları oluşturmak için mükemmel bir seçenek yapar. Django'nun sağlamlığı, ölçeklenebilirliği ve kapsamlı yerleşik özellikleri, geliştiriciler arasında tercih edilen bir framework haline getirmiştir.

Bu makalede, Django'nun temel özelliklerini, faydalarını ve Django geliştirmeyle nasıl başlayabileceğimizi keşfedeceğiz. Ayrıca, Django'nun işlevselliğinin çeşitli yönlerini göstermek için kod örnekleri sunacağız. Hem acemi hem de deneyimli bir geliştirici olsanız da, bu makale, Django web geliştirme konusunda kapsamlı bir rehber olarak hizmet edecektir.

Django İle Başlarken

Django ile çalışmaya başlamak için bilgisayarınızda Python'un kurulu olması gerekmektedir. Django, Python 3.6 veya daha yeni sürümlerle uyumludur, bu nedenle uygun Python sürümünün kurulu olduğundan emin olun. Python'u resmi web sitesinden indirebilir ve işletim sisteminize göre kurulum talimatlarını takip edebilirsiniz.

Python kurulduktan sonra, Django'nun kurulumunu yapmaya devam edebilirsiniz. Bir terminal veya komut istemi açın ve aşağıdaki komutu kullanın:

pip install django

Bu komut, Django'yu ve bağımlılıklarını sisteminize kurar. Kurulum tamamlandıktan sonra, aşağıdaki komutu çalıştırarak kurulumun doğru yapıldığını doğrulayabilirsiniz:

django-admin --version

Django doğru şekilde kurulmuşsa, sürüm numarasını terminalde görürsünüz.

Django Projesi Oluşturma

Django ile yeni bir proje oluşturmak için şu komutu çalıştırın:

django-admin startproject myproject

Bu komut, myproject adında yeni bir dizin oluşturur ve bu dizin, proje kök dizini olarak hizmet eder. myproject dizini içinde, bir manage.py dosyası ve proje adıyla aynı olan başka bir dizin bulunur. manage.py dosyası, Django projesiyle etkileşim için kullanılır ve içerideki dizin, proje ayarlarını ve yapılandırma dosyalarını içerir.

Geliştirme Sunucusunu Çalıştırma

Yeni oluşturulan Django projesini test etmek için, terminal veya komut isteminde proje kök dizinine (myproject) gidin. Dizin içindeyken, aşağıdaki komutu çalıştırın:

python manage.py runserver

Bu komut, Django ile birlikte gelen hafif bir web sunucusunu başlatır. Varsayılan olarak, sunucu http://127.0.0.1:8000/ adresinde çalışır. Web tarayıcınızı açın ve bu adresi girerek varsayılan Django hoş geldiniz sayfasını görüntüleyebilirsiniz.

Tebrikler! Başarılı bir şekilde bir Django projesi oluşturdunuz ve geliştirme sunucusunu başlattınız. Şimdi daha derine inerek Django'nun özelliklerini keşfedelim ve web geliştirme yolculuğunuzu nasıl kolaylaştırabileceğini görelim.

Django'nun Temel Özellikleri

Django, web geliştirme sürecini basitleştiren birçok özellik sunar. Hadi Django'yu diğer framework'lerden ayıran bazı temel özelliklere göz atalım:

1. Nesne-İlişkisel Eşleme (ORM)

Django, güçlü ve sezgisel bir Nesne-İlişkisel Eşleme (ORM) katmanı sağlar ve Python nesneleri kullanarak veritabanıyla etkileşimde bulunmanızı sağlar. ORM, karmaşık SQL sorguları yazma ihtiyacını ortadan kaldırır ve veritabanı işlemlerini sizin için yönetir. PostgreSQL, MySQL, SQLite ve Oracle gibi birden fazla veritabanı motorunu destekler.

İşte Django ORM'yi kullanarak basit bir modelin nasıl tanımlanacağını gösteren bir örnek:

from django.db import models

class Kitap(models.Model):
    baslik = models.CharField(max_length=100)
    yazar = models.CharField(max_length=100)
    yayin_tarihi = models.DateField()

Bu örnekte, Kitap adında üç alanı (baslik, yazar ve yayin_tarihi) olan bir model tanımlıyoruz. Django'nun ORM'i, bu modele karşılık gelen veritabanı tablosunu otomatik olarak oluşturacak ve bu modele ait CRUD işlemlerini yönetecektir.

2. Yönetici Arayüzü

Django, herhangi bir ekstra kod yazmadan uygulamanızın verilerini yönetmenizi sağlayan otomatik bir yönetici arayüzü sağlar. Yönetici arayüzü tamamen özelleştirilebilir ve kayıtları oluşturma, güncelleme ve silme gibi işlemler için kullanıcı dostu bir arayüz sunar. Ayrıca arama, filtreleme ve sıralama gibi özellikleri de içerir.

Modellerinizi yönetici arayüzüne eklemek için, admin.py dosyasında kaydetmeniz gerekmektedir:

from django.contrib import admin
from .models import Kitap

admin.site.register(Kitap)

Modellerinizi kaydettikten sonra, geliştirme sunucusunu çalıştırarak yönetici arayüzüne erişebilirsiniz ve http://127.0.0.1:8000/admin/ adresine giderek giriş yapmanız istenecektir. Bu adreste süper kullanıcıya ait kimlik bilgileriyle giriş yapabilirsiniz. Süper kullanıcıyı createsuperuser komutuyla oluşturabilirsiniz.

3. URL Yönlendirme ve Görünüm İşleme

Django, URL yönlendirme mekanizmasını takip eder ve URL'leri ilgili görünüm fonksiyonlarıyla eşleştirmenize olanak tanır. Görünümler, istekleri işleme ve yanıt döndürme mantığını ele alır. Django, URL desenlerini tanımlamanın basit ve zarif bir yolunu sağlar ve bunları görünümlerle ilişkilendirir.

İşte bir URL desenini nasıl tanımlayacağınızı ve bir görünümle ilişkilendireceğinizi gösteren bir örnek:

from django.urls import path
from .views import ana_sayfa

urlpatterns = [
    path('', ana_sayfa, name='anasayfa'),
]

Bu örnekte, kök URL'sine (http://127.0.0.1:8000/) eşleşen bir URL deseni tanımlıyoruz ve bunu ana_sayfa adlı bir görünüm fonksiyonuyla ilişkilendiriyoruz. name parametresi, URL desenini benzersiz bir şekilde tanımlamak için kullanılır ve dinamik olarak URL'ler oluşturmak için kullanılabilir.

4. Şablon Motoru

Django, iş mantığını sunum mantığından ayırmanızı sağlayan güçlü bir şablon motoruyla birlikte gelir. Şablonlar, HTML kullanılarak yazılır ve Python kodunu gömmenize ve görünümlerden geçirilen verilere erişmenize olanak tanır.

İşte Django şablonlarının kullanımını gösteren basit bir örnek:

<!-- templates/anasayfa.html -->

<html>
<head>
    <title>Ana Sayfa</title>
</head>
<body>
    <h1>Django web sitesine hoş geldiniz!</h1>
    {% if user.is_authenticated %}
        <p>Merhaba, {{ user.username }}!</p>
    {% else %}
        <p>Devam etmek için lütfen giriş yapın.</p>
    {% endif %}
</body>
</html>

Bu örnekte, hoş geldiniz mesajını gösteren basit bir HTML şablonu bulunmaktadır. {% if %} ifadesi, kullanıcının kimlik doğrulamasını kontrol eder ve buna göre kişiselleştirilmiş bir mesaj gösterir. Django'nun şablon motoru, bu şablonu ilgili verilerle birlikte işleyecektir.

5. Form İşleme

Django, HTML formlarıyla çalışmayı kolaylaştıran güçlü bir form işleme mekanizması sağlar. Django formları, form doğrulama, veri bağlama ve hata işleme gibi işlemleri otomatik olarak yapar ve minimum çaba ile karmaşık formlar oluşturmanıza olanak tanır.

İşte Django'da basit bir formun nasıl tanımlanacağını gösteren bir örnek:

from django import forms

class IletisimFormu(forms.Form):
    ad = forms.CharField(max_length=100)
    email = forms.EmailField()
    mesaj = forms.CharField(widget=forms.Textarea)

Bu örnekte, IletisimFormu adında üç alana (ad, email ve mesaj) sahip bir form sınıfı tanımlıyoruz. Django'nun form işleme mekanizması, gerekli HTML form elemanlarını otomatik olarak oluşturacak ve form sunulduğunda doğrulama işlemini gerçekleştirecektir.Elbette! İşte Django terminal komutlarını detayları ve örnekleriyle birlikte içeren bir bölüm:

Django Terminal Komutları

Django, Django projesiyle ilgili çeşitli görevleri yerine getirmenizi sağlayan manage.py adlı bir komut satırı yardımcı programı sağlar. İşte sık kullanılan terminal komutları ve açıklamaları:

1. Yeni Bir Django Projesi Oluşturma

Yeni bir Django projesi oluşturmak için aşağıdaki komutu kullanın:

python manage.py startproject proje_adi

Bu komut, verilen proje_adi ile yeni bir Django projesi oluşturur. Proje yapısı gerekli dosya ve dizinlerle kurulur.

Örnek:

python manage.py startproject myproject

2. Geliştirme Sunucusunu Çalıştırma

Django projesinizi yerel olarak çalıştırmak için geliştirme sunucusunu başlatmak için aşağıdaki komutu kullanın:

python manage.py runserver

Bu komut, geliştirme sunucusunu başlatır ve varsayılan olarak sunucu http://127.0.0.1:8000/ üzerinde çalışır. Django uygulamanıza bu URL'yi web tarayıcınızda açarak erişebilirsiniz.

Örnek:

python manage.py runserver

3. Yeni Bir Django Uygulaması Oluşturma

Django projeleri birden çok uygulamadan oluşur. Django projesi içinde yeni bir uygulama oluşturmak için aşağıdaki komutu kullanın:

python manage.py startapp uygulama_adi

Bu komut, verilen uygulama_adi ile yeni bir Django uygulaması oluşturur. Uygulama, kendi dizin yapısına ve dosyalara sahip olacaktır.

Örnek:

python manage.py startapp myapp

4. Veritabanı Migration'larını Uygulama

Django, veritabanı şemasındaki değişiklikleri yönetmek için veritabanı migration'larını kullanır. Bekleyen migration'ları uygulamak için aşağıdaki komutu kullanın:

python manage.py migrate

Bu komut, bekleyen veritabanı migration'larını uygular ve veritabanı şemasını Django modellerinizin güncel durumuyla senkronize eder.

Örnek:

python manage.py migrate

5. Veritabanı Migration'ları Oluşturma

Modellerinizi değiştirdiğinizde, bu değişiklikleri veritabanına yansıtmak için veritabanı migration'ları oluşturmanız gerekmektedir. Yeni bir migration oluşturmak için aşağıdaki komutu kullanın:

python manage.py makemigrations

Bu komut, modellerinizi analiz eder ve veritabanına uygulanacak değişiklikleri yakalayan yeni migration dosyaları oluşturur.

Örnek:

python manage.py makemigrations

6. Django Kabuğuyla Etkileşim

Django, Django projesiyle etkileşimde bulunmanızı ve operasyonları programatik olarak gerçekleştirmenizi sağlayan etkileşimli bir kabuk sağlar. Django kabuğunu başlatmak için aşağıdaki komutu kullanın:

python manage.py shell

Bu komut, Django kabuğunu açar ve Django modüllerini içe aktarabilir, modellerinize erişebilir ve Python kodu çalıştırabilirsiniz.

Örnek:

python manage.py shell

Bunlar, Django proje yönetimi için kullanabileceğiniz terminal komutlarının sadece birkaç örneğidir. Django'nun manage.py yardımcı programı, süper kullanıcı oluşturma, test çalıştırma ve daha birçok görev için geniş bir komut yelpazesi sağlar. Tüm kullanılabilir komutların tam listesi için Django belgelerini inceleyebilirsiniz.

Bu komutları her zaman Django proje kök dizininde, manage.py dosyasının bulunduğu yerde çalıştırdığınızdan emin olun.

Sonuç

Django, web uygulamalarının geliştirme sürecini basitleştiren güçlü ve özellikli bir Python web framework'üdür. Bu makalede, Django'nun Nesne-İlişkisel Eşleme (ORM), yönetici arayüzü, URL yönlendirme, şablon motoru ve form işleme gibi temel özelliklerini keşfettik. Django geliştirmeyle başlamak için kod örnekleri de sunduk.

Django'nun kapsamlı belgeleri, canlı bir topluluğu ve yeniden kullanılabilir paketlerin geniş ekosistemi ile, güçlü ve ölçeklenebilir web uygulamaları oluşturmak için bol miktarda kaynak ve destek bulacaksınız. Siz acemi veya deneyimli bir geliştirici olun, Django'nun sezgisel tasarımı ve kapsamlı özellikleri, web geliştirmede mükemmel bir seçenek yapar.

Django yolculuğunuza bugün başlayın ve kolaylıkla dinamik ve etkileyici web uygulamaları oluşturma potansiyelini keşfedin!