Django ile Python Web Uygulaması Oluşturma

Django, hızlı geliştirmeyi ve temiz, pragmatik tasarımı teşvik eden üst düzey bir Python web çerçevesidir. Web geliştirmenin zorluklarının çoğunu üstlenir ve geliştiricilerin tekerleği yeniden icat etmek yerine uygulamayı yazmaya odaklanmasını sağlar. Bu makale, Django kullanarak basit bir web uygulaması oluşturmanızda size rehberlik edecektir.

Django'ya Başlarken

Bir Django web uygulaması oluşturmaya başlamadan önce Django'yu yüklemeniz gerekir. Django'yu Python'un paket yükleyicisi olan pip'i kullanarak yükleyebilirsiniz:

pip install django

Django kurulduktan sonra, terminalinizde veya komut isteminizde aşağıdaki komutu çalıştırarak yeni bir Django projesi oluşturabilirsiniz:

django-admin startproject myproject

Bu komut, başlamak için gerekli dosyaların bulunduğu myproject adlı yeni bir dizin oluşturur. Bu dizine gidin:

cd myproject

Django Uygulaması Oluşturma

Django projenizin içinde, belirli işlevleri işleyen bireysel uygulamalar oluşturabilirsiniz. Örneğin, kullanıcı kimlik doğrulaması için bir uygulamanız, blog yazıları için başka bir uygulamanız vb. olabilir. Bir uygulama oluşturmak için aşağıdaki komutu çalıştırın:

python manage.py startapp myapp

Bu, models.py, views.py ve tests.py gibi dosyaları içeren myapp adlı yeni bir dizin oluşturur. Modellerinizi, görünümlerinizi ve şablonlarınızı bu uygulama içinde tanımlayacaksınız.

Modelleri Tanımlama

Django modelleri verilerinizin yapısını tanımlar ve Python sınıfları olarak temsil edilir. Bunları uygulamanızın içindeki models.py dosyasında tanımlarsınız:

from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

Modellerinizi tanımladıktan sonra, onlar için veritabanı tabloları oluşturmanız gerekir. Göçleri uygulamak için aşağıdaki komutları çalıştırın:

python manage.py makemigrations
python manage.py migrate

Görünümler ve Şablonlar Oluşturma

Django görünümleri uygulamanızın mantığını yönetir ve şablonlarda veriyi işlemek için modellerle etkileşime girer. views.py dosyasında basit bir görünüm oluşturulabilir:

from django.shortcuts import render
from .models import BlogPost

def home(request):
    posts = BlogPost.objects.all()
    return render(request, 'home.html', {'posts': posts})

Yukarıdaki kod veritabanından tüm blog yazılarını alır ve bunları home.html adlı bir şablona geçirir. home.html şablonu uygulamanızın içindeki templates adlı bir dizinde saklanır:

<!DOCTYPE html>
<html>
<head>
    <title>Blog Home</title>
</head>
<body>
    <h1>Blog Posts</h1>
    <ul>
    {% for post in posts %}
        <li>{{ post.title }} - {{ post.created_at }}</li>
    {% endfor %}
    </ul>
</body>
</html>

URL'leri yapılandırma

Görünümleri URL'lere bağlamak için URL kalıplarını tanımlamanız gerekir. Uygulama dizininizde urls.py adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

Daha sonra bu uygulamanın URL modellerini ana proje urls.py dosyasına ekleyin:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

Geliştirme Sunucusunu Çalıştırma

Modellerinizi, görünümlerinizi, şablonlarınızı ve URL'lerinizi ayarladıktan sonra, web uygulamanızı çalışırken görmek için Django geliştirme sunucusunu çalıştırabilirsiniz:

python manage.py runserver

Bir web tarayıcısı açın ve Django web uygulamanızın çalıştığını görmek için http://127.0.0.1:8000/ adresine gidin.

Çözüm

Django, Python ile güçlü ve sağlam web uygulamaları oluşturmayı kolaylaştırır. Bu kılavuz, bir Django projesi kurma, bir uygulama oluşturma, modeller tanımlama, görünümler ve şablonlar oluşturma, URL'leri yapılandırma ve geliştirme sunucusunu çalıştırma temellerini ele almıştır. Django ile ölçeklenebilir ve sürdürülebilir web uygulamalarını kolaylıkla oluşturabilirsiniz.