Breaking News:

Django'da Uygulama Oluşturma

Django, geliştiricilere projeyi parçalara ayırması konusunda önerilerde bulunmaktadır. Bunun içinse gerekli araçları gerliştiriciye sağlamaktadır. Django'da bu sebeple uygulama kavramı vardır. Örneğin bir websitesi düşünün. Bu websitesi hem forum içerecek hem de blog bölümü içerecek. Ancak bunları tek bir klasör içinde yazmamız pek kolay değil. Django buna çözüm olarak bu bölümlerin her birini bir uygulama olarak el almamızı istiyor. Yani forum ayrı bir uygulama olarak oluşturulacak ve projeye bağlanacak, aynı durum blog için de geçerli.

Örneğin, ben bir blog oluşturmak istiyorum. Bu blog için bir uygulama oluşturmam gerek proje içinde: 
$\ilksite> django-admin startapp blog
Bu işlemden sonra görüleceği üzere blog adında bir uygulama oluşturulmuş oldu.
  • ilksite/
    • blog/
      • __init__.py
      • admin.py
      • apps.py
      • models.py
      • tests.py
      • views.py
    • ilksite/
      • ...
    • db.sqlite3
    • manage.py
Şimdi sırasıyla uygulama içindeki dosyaları inceleyelim.
  • admin.py: Bu dosya uygulama ile admin paneli arasında gerçekleşecek olan ilişkileri barındıracak. Örnek olara oluşturduğumuz bir modeli admin panelinde tanıtmak istiyorsak bu dosya üzerinden kaydetmemiz gerekecek.
  • apps.py: Uygulamanın ayarlarını barındıran kısımdır. Uygulamamızı projeye tanıtırken bu dosyaya ihtiyacımız var.
  • models.py: Uygulamaya ait modelleri barındıran dosyadır.
  • tests.py: Uygulamanın çalışma durumunu test edeceğimiz dosyadır. Herhangi bir güncelleme sonrası önceden düzgin çalışan fonksiyonlarda herhangi bir sıkıntı olursa bu sayede tespit etmiş olacağız. Bu sadece Django'ya özel olan bir durum değil. Her yazılım, geliştirme esnasında teste tabi tutulmalıdır.
  • views.py: Uygulamamıza ait view yapılarını içerecek dosyadır.
Örneği başarılı bir şekilde oluşturduk ancak daha işimiz bitmedi. Bu uygulamayı projeye yüklememiz gerekiyor. Bunun için settings.py dosyası açılır ve INSTALLED_APPS list yapısına uygulama eklenir:
...

# Application definition

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

...
Ekleme yapıldıktan sonra örnek bir view function yazalım. Bunun için uygulama klasöründeki views.py açılır:
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def index(request):
return HttpResponse("Merhaba!")
Bu işlemden sonra urls.py adında yeni bir dosya uygulama klasörü içinde oluşturulur:
from django.urls import path

from blog.views import index

urlpatterns = [
path("", index, name="index"),
]
Sonrasında bu urlpatterns proje klasöründe yer alan ana urls.py dosyasında tanıtılır:
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
Şimdi projeyi çalıştırmayı deneyelim ve 127.0.0.1:8000 adresini açalım ve view üzerinden ilk HttpResponse nesnemizi başarıyla döndürdük:
Django HttpResponse

Kaynaklar


Hiç yorum yok:

ads
Blogger tarafından desteklenmektedir.