Django ile Python Geliştiriciliğine Giriş

Django Nedir ve Neden Tercih Edilmeli?

Django, Python ile geliştirilmiş yüksek seviye bir web geliştirme çerçevesidir. Hızlı geliştirme, temiz ve pragmatik tasarım gibi özellikleri ile dikkat çeker. 2005 yılında oluşturulmuştur ve o zamandan beri sürekli geliştirme aşamasındadır. Django, zihninizdeki fikirleri hızlıca gerçek bir proje haline getirmenize yardımcı olurken, bir yandan da güvenliği ve ölçeklenebilirliği önemser. Bu yönleri nedeniyle, birçok yazılım geliştirici Django’yu web uygulamaları için tercih etmektedir.

Django’nun sunduğu pek çok avantaj bulunmaktadır. Öncelikle, “batteries included” felsefesi sayesinde, birçok yerleşik özellik ile birlikte gelir. Bu, kullanıcı kimlik doğrulama, form işleme, URL yönlendirme ve veritabanı modelleri gibi temel işlevlerin, sıfırdan kod yazmanıza gerek kalmadan projeye dahil edilebileceği anlamına gelir. Ayrıca, Django’nun geniş bir topluluğa sahip olması, kullanıcıların sorunlarına hızlı çözümler bulmasını ve kaynakları kolayca elde etmesini sağlar.

Bir başka önemli nokta ise, Django’nun sağlam bir yapı üzerine inşa edilmiş olmasıdır. Model-View-Template (MVT) yani Model-Görünüm-Şablon mimarisi sayesinde, projelerinizi daha düzenli ve sürdürülebilir bir şekilde geliştirebilirsiniz. Bu ayrım, hem geliştiricilerin kodu daha anlaşılır hale getirmesine hem de projelerin daha kolay bakımını yapmasına olanak tanır.

Django İle Çalışmaya Başlamak

Django ile geliştirme yapmaya başlamak için öncelikle bilgisayarınıza Python ve Django kurulumunu gerçekleştirmelisiniz. Python’un en güncel sürümünü indirip kurduktan sonra, Django’yu pip aracılığıyla yükleyebilirsiniz. Terminal veya komut istemcisine şu komutu yazmanız yeterlidir:

pip install django

Daha sonra, projenizi oluşturmak için bir Django uygulaması başlatacaksınız. Bunun için yine terminalden şu komutu verebilirsiniz:

django-admin startproject proje_adi

Bu komut, belirtilen isimle yeni bir Django projesi oluşturacaktır. Projeniz oluşturulduktan sonra, dizine gidip sunucuyu başlatmak için:

python manage.py runserver

komutunu yazabilirsiniz. Tarayıcınıza giderek http://127.0.0.1:8000/ adresini yazarak, projenizin ana sayfasını görüntüleyebilirsiniz.

Model-View-Template (MVT) Yapısı

Django’da uygulamanızın temelini oluşturacak olan yapı Model-View-Template (MVT) bileşenidir. Model, verilerinizi ve veritabanı etkileşimlerinizi yönetir; View, kullanıcının etkileşimde bulunduğu mantıksal bölümüdür; Template ise verinin nasıl görüneceğini oluşturur. Bu yapı, uygulamanızın kodunu daha düzenli tutmanıza yardımcı olur ve bakımını kolaylaştırır.

Model oluşturmak için, öncelikle bir uygulama (app) oluşturmalısınız. Terminalde aşağıdaki komutu kullanarak yeni bir uygulama oluşturabilirsiniz:

python manage.py startapp uygulama_adi

Oluşturduğunuz uygulama içinde, milkşelinin veri yapısını tanımlayarak bir models.py dosyası oluşturmalısınız. Django, bu dosyada tanımladığınız veri modellerini otomatik olarak veritabanına yansıtır.

from django.db import models

class Kitap(models.Model):
    isim = models.CharField(max_length=100)
    yazar = models.CharField(max_length=100)
    yayım_tarihi = models.DateField()

Daha sonra, oluşturduğunuz model için veri tabanında tabloların oluşturulması için ‘migrate’ komutunu çalıştırmalısınız:

python manage.py makemigrations
python manage.py migrate

Django ile Kullanıcı Arayüzü (Template) Oluşturma

Django uygulamanızın kullanıcı arayüzünü oluşturmak için şablonlar (templates) kullanmalısınız. Django, HTML içeren şablon dosyalarını işler ve verileri bu şablonlar içinde görüntülemenizi sağlar. Şablonlarınızın tanımlanabilmesi için uygulama dizininde ‘templates’ adında bir klasör oluşturmalısınız.

Django’da bir şablon oluşturmak için aşağıdaki gibi bir HTML dosyası yaratabilirsiniz:

<!DOCTYPE html>
<html>
<head>
    <title>Kitap Listesi</title>
</head>
<body>
    <h1>Kitaplar</h1>
    <ul>
    {% for kitap in kitaplar %}
        <li>{{ kitap.isim }} - {{ kitap.yazar }} - {{ kitap.yayım_tarihi }}</li>
    {% endfor %}
    </ul>
</body>
</html>

Bu şablonda, kitapların listelenebilmesi için bir döngü kullanıyoruz. View fonksiyonunuzda bu şablonu render ederek kullanıcıya gösterilmesini sağlayabilirsiniz. Örnek bir view fonksiyonu şöyle görünebilir:

from django.shortcuts import render
from .models import Kitap

def kitap_listesi(request):
    kitaplar = Kitap.objects.all()
    return render(request, 'kitaplar/kitap_listesi.html', {'kitaplar': kitaplar})

Django’da URL Yönlendirmeleri ve Görünümler

Django’da URL yönlendirmeleri, kullanıcıların uygulama içinde farklı sayfalara erişimini sağlamak için kullanılır. Her URL, belirli bir görünüme (view) yönlendirilir. Bir URL’yi tanımlamak için uygulamanızda bir urls.py dosyası oluşturmalısınız.

Aşağıda, basit bir URL yönlendirmesi örneği verilmiştir:

from django.urls import path
from .views import kitap_listesi

urlpatterns = [
    path('kitaplar/', kitap_listesi, name='kitap_listesi'),
]

Bu kod parçası, ‘/kitaplar/’ URL’sine yapılan talepleri kitap_listesi görünümüne yönlendirecektir. Başka görünüm ve URL’ler ekleyerek uygulamanızın kapsamını genişletebilirsiniz.

Django’da Veri Yönetimi ve Admin Paneli

Django, yerleşik bir yönetim paneli ile birlikte gelir. Bu panel, kullanıcıların veri yönetimini kolaylaştırır. Yönetim panelini kullanabilmek için öncelikle admin arayüzünü projenize kayıt ettirmeniz gerekir. Bunu yapmak için uygulamanızın ‘admin.py’ dosyasını düzenlemeniz yeterlidir:

from django.contrib import admin
from .models import Kitap

admin.site.register(Kitap)

Bu işlemden sonra, terminalde süper kullanıcı oluşturmalısınız:

python manage.py createsuperuser

Bu komut ile yöneticilik yetkisine sahip bir kullanıcı oluşturmadıkça admin paneline erişemezsiniz. Tarayıcınızda http://127.0.0.1:8000/admin/ adresine gittiğinizde giriş yapabilir ve Kitap modelinizi yönetebilirsiniz.

Güvenlik ve Yayınlama İpuçları

Django, güçlü bir güvenlik mimarisine sahiptir, ancak uygulamanızın güvenliği için bazı en iyi uygulamaları uygulamak önemlidir. Öncelikle, ayarlarınızı gizli tutmalısınız ve DEBUG modunu yalnızca geliştirme aşamasında aktif tutmalısınız. Üretim ortamında bu модu kapatmalısınız.

Öte yandan, Django’nun sunduğu koruma önlemlerini kullanmak önemlidir. SQL enjeksiyon, XSS ve CSRF gibi farklı saldırılara karşı özel filtreler ve form_validasyon mekanizmaları kullanılmalısınız. Bu nedenle, Django ile çalışırken güvenliği asla göz ardı etmeyin.

Django uygulamanızı canlı bir ortama yayınlamak için, birkaç yaygın yöntem bulunmaktadır. Uygulamanızı Heroku, Digital Ocean veya AWS gibi platformlar üzerinden kolayca yayınlayabilirsiniz. Her platformun kendine özgü yapılandırma talimatları vardır, bu nedenle tercih ettiğiniz platforma göre belgeleri incelemeniz önerilir.

Sonuç

Django ile Python geliştiriciliğine giriş yaptıktan sonra, kendinizi geliştirerek daha karmaşık projeler üzerinde çalışabilirsiniz. Django’nun sağladığı kapsamlı kütüphaneler ve modüller,15 birkaç satır kod yazarak karmaşık uygulamalar oluşturmanın kapısını aralayacaktır.

Bu yazıda temel MVT yapısından, URL yönlendirmelerine, kullanıcı arayüzlerinden güvenlik önlemlerine kadar Django ile ilgili bilmeniz gereken önemli noktaları ele aldık. Kendi projelerinizi başlatmak için bu bilgilerden faydalanabilirsiniz.

Django’nun geniş ve aktif topluluğuna katılarak, forumlar ve gruplarda etkileşimde bulunabilir, bilgi alışverişine başlayabilirsiniz. Araştırmalarınıza devam ederek, sürekli öğrenmeye ve projelerinizi bir adım öteye taşımaya devam etmenizi diliyorum!

Scroll to Top