Django'ya Giriş Rehberi: İlk Web Uygulamanızı Hızla Oluşturun
Django'ya Giriş Rehberi: İlk Web Uygulamanızı Hızla Oluşturun
Django, hızlı geliştirme ve sade tasarım hedefiyle oluşturulmuş üst düzey bir Python Web çatısıdır. Model-Şablon-Görünüm (MTV) mimarisini izler, kodun yeniden kullanımını ve bileşenleştirmeyi teşvik eder. Bu rehber, basit bir Django uygulamasını adım adım oluşturmanıza rehberlik edecek ve hızlıca başlamanızı sağlayacaktır.
1. Ortam Kurulumu
Öncelikle, sisteminizde Python'un kurulu olduğundan emin olmanız gerekir. Django, Python 3.6 veya daha üst bir sürümünü kullanmanızı önerir.
1.1 Python'u Kurulum
Sisteminizde Python yüklü değilse, Python resmi web sitesinden indirip kurabilirsiniz.
1.2 Sanal Ortam (Virtual Environment) Oluşturma
Farklı projeler arasındaki bağımlılıkları izole etmek için, sanal ortam kullanmanız şiddetle tavsiye edilir.
-
Bir terminal veya komut istemi açın.
-
Bir proje dizini oluşturun, örneğin
myproject:mkdir myproject cd myproject -
Sanal ortamı oluşturun ve etkinleştirin:
python3 -m venv venv # veya python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # WindowsSanal ortamı etkinleştirdikten sonra, terminal isteminizde
(venv)görüntülenecektir, bu da sanal ortamı kullandığınızı gösterir.
1.3 Django'yu Kurulum
Etkinleştirilmiş sanal ortamda, pip kullanarak Django'yu kurun:
pip install Django
Kurulumun başarılı olup olmadığını doğrulayın:
python -m django --version
Django'nun sürüm numarasını görmelisiniz.
2. Django Projesi Oluşturma
Django'yu kurduktan sonra, yeni bir Django projesi oluşturabilirsiniz.
-
Hala proje dizininizde (
myproject) aşağıdaki komutu çalıştırın:django-admin startproject mysiteBu,
myprojectdizini altındamysiteadında bir dizin oluşturacak ve Django projesinin iskelet dosyalarını içerecektir. -
mysitedizinine girin:cd mysite -
Django proje dizin yapısı aşağıdaki gibidir:
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.pymanage.py: Django projesini yönetmek için kullanılan bir komut satırı aracıdır.mysite/: Proje yapılandırmasını içeren Python paketidir.__init__.py: Python'a bu dizinin bir Python paketi olarak kabul edilmesi gerektiğini söyleyen boş bir dosyadır.settings.py: Veritabanı ayarları, hata ayıklama modu vb. gibi proje yapılandırma dosyasıdır.urls.py: URL'leri görünüm işlevlerine eşleyen URL yönlendirme yapılandırmasıdır.asgi.py: Asenkron uygulamaları dağıtmak için kullanılan ASGI (Asynchronous Server Gateway Interface) yapılandırma dosyasıdır.wsgi.py: Geleneksel senkron uygulamaları dağıtmak için kullanılan WSGI (Web Server Gateway Interface) yapılandırma dosyasıdır.## 3. Geliştirme Sunucusunu Başlatma
Django, yerel olarak geliştirme ve test yapmanızı kolaylaştıran hafif bir geliştirme sunucusuyla birlikte gelir.
-
mysitedizininde aşağıdaki komutu çalıştırın:python manage.py runserver -
Tarayıcınızı açın ve
http://127.0.0.1:8000/adresini ziyaret edin. "It worked! Congratulations on your first Django-powered page." sayfasını görmelisiniz.
4. Django Uygulaması Oluşturma
Bir Django projesi birden fazla uygulama içerebilir. myapp adlı bir uygulama oluşturalım.
-
Yeni bir terminal penceresi açın (geliştirme sunucusunu çalışır durumda tutun).
-
mysitedizininde aşağıdaki komutu çalıştırın:python manage.py startapp myappBu,
mysitedizini altında, Django uygulamasının iskelet dosyalarını içerenmyappadlı bir dizin oluşturacaktır. -
Django uygulama dizin yapısı aşağıdaki gibidir:
myapp/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py__init__.py: Python'a bu dizinin bir Python paketi olarak kabul edilmesi gerektiğini söyleyen boş bir dosya.admin.py: Django yönetim panelini yapılandırmak için kullanılır.apps.py: Uygulama yapılandırması.migrations/: Veritabanı geçişlerini yönetmek için kullanılır.models.py: Veri modellerini (veritabanı tabloları) tanımlar.tests.py: Test senaryoları yazmak için kullanılır.views.py: İstekleri işleyen ve yanıt döndüren görünüm fonksiyonlarını tanımlar.
-
mysite/settings.pyiçinde,myapp'iINSTALLED_APPSlistesine ekleyin:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', # myapp'i ekle ]
5. Basit Bir Görünüm Oluşturma
Şimdi tarayıcıda "Hello, Django!" görüntüleyen basit bir görünüm oluşturalım.
-
myapp/views.pydosyasını düzenleyin ve aşağıdaki kodu ekleyin:from django.http import HttpResponse def index(request): return HttpResponse("Hello, Django!") -
Bir
myapp/urls.pydosyası oluşturun ve URL'leri görünüm fonksiyonuna eşleyin:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
```
3. `myapp/urls.py` dosyasını `mysite/urls.py` dosyasına dahil edin:
```python
from django.urls import include, path
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')), # myapp'in URL yapılandırmasını ekle
]
```
4. `http://127.0.0.1:8000/myapp/` adresini ziyaret edin. "Hello, Django!" sayfasını görmelisiniz.
## 6. Bir Model Oluşturun
Şimdi bazı verileri depolamak için basit bir model oluşturalım.
1. `myapp/models.py` dosyasını düzenleyin ve aşağıdaki kodu ekleyin:
```python
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
```
Bu, `Question` adında bir model tanımlar ve iki alan içerir: `question_text` (CharField) ve `pub_date` (DateTimeField).
2. Veritabanı geçişlerini oluşturun ve uygulayın:
```bash
python manage.py makemigrations myapp
python manage.py migrate
```
`makemigrations` komutu, modelinize göre geçiş dosyaları oluşturur ve `migrate` komutu, geçişleri veritabanına uygular.
## 7. Django Yönetim Paneli Kullanımı
Django, verilerinizi kolayca yönetmenizi sağlayan güçlü bir yönetim paneli sunar.
1. Bir süper kullanıcı oluşturun:
```bash
python manage.py createsuperuser
```
İstenen kullanıcı adını, e-posta adresini ve şifreyi girin.
2. `myapp/admin.py` dosyasını düzenleyin ve `Question` modelini kaydedin:
```python
from django.contrib import admin
from .models import Question
admin.site.register(Question)
```
3. `http://127.0.0.1:8000/admin/` adresini ziyaret edin ve oluşturduğunuz süper kullanıcı ile giriş yapın. "Questions" modülünü görmelisiniz, burada sorular ekleyebilir, düzenleyebilir ve silebilirsiniz.
## 8. Şablonları Kullanma
Şablonları kullanarak HTML sayfalarını daha esnek bir şekilde oluşturabilirsiniz.1. `myapp` dizini altında `templates` adında bir dizin oluşturun ve `templates` dizini altında `myapp` adında bir dizin oluşturun (`myapp/templates/myapp`).
2. `myapp/templates/myapp` dizini altında `index.html` adında bir dosya oluşturun ve aşağıdaki kodu ekleyin:
```html
# Merhaba, Django!
Şu anki zaman: {{ current_time }}
```
3. `myapp/views.py` dosyasını düzenleyin ve şablonu kullanın:
```python
from django.shortcuts import render
import datetime
def index(request):
now = datetime.datetime.now()
return render(request, 'myapp/index.html', {'current_time': now})
```
`render` fonksiyonu şablonu yükler ve verileri şablonu işlemek için şablona iletir.
4. `http://127.0.0.1:8000/myapp/` adresini tekrar ziyaret edin. Şu anki zamanı içeren sayfayı görmelisiniz.
## 9. Sonuç
Bu kılavuz sayesinde, Django'nun temel kavramlarını ve kullanım yöntemlerini öğrendiniz; buna ortam kurulumu, proje ve uygulama oluşturma, model tanımlama, görünüm oluşturma ve şablon kullanma dahildir. Bu sadece bir başlangıç, Django zengin özellikler sunar, daha karmaşık Web uygulamaları oluşturmak için öğrenmeye ve keşfetmeye devam edebilirsiniz.





