Django Urls & Views
Django uygulamalarına yapılan http taleplerini karşımak için url şeması oluşturmamız gerekiyor.
Django Urls
Projeye eklediğimiz uygulama içerisine urls.py isminde bir dosya eklememiz gerekiyor.
from django.urls import path
from . import views
urlpatterns = [
path("", views.index),
path("index", views.index),
path("posts", views.posts),
]
Burada eklediğimiz her bir path aslında uygulamaya yapılan istek adresini (url) şekillendirdiğimiz yerdir.
Her bir http talebi sonucunda views.py dosyası içerisindeki metota çağrı yapılır.
Örneğin;
http://127.0.0.1:8000/ => index metodu
http://127.0.0.1:8000/index => index metodu
http://127.0.0.1:8000/posts => posts metodu
O halde artık uygulamaya yapılan talepleri ilgili metotlara yönlendirebiliyorsak şimdi kullanıcılara bir cevap döndürebiliriz. (Http Response).
Django Views
from django.http.response import HttpResponse
def index(request):
return HttpResponse("anasayfa")
def posts(request):
return HttpResponse("blog listesi")
Uygulamayı çalıştırdığımızda artık bir cevap döndürmeye hazırız ancak uygulamadaki urls.py dosyasını proje ana dizinindeki urls.py dosyasına tanıtmamız gerekiyor.
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
Artık projeyi çalıştırdığımızda aşağıdaki linklerimizi karşılayacak bir url şemamız mevcut.
http://127.0.0.1:8000/ => index metodu
http://127.0.0.1:8000/index => index metodu
http://127.0.0.1:8000/posts => posts metodu
Projenin url şemasına bir ön ek ekleyebiliriz.
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
Bu durumda tüm linklerin başında blog ön eki olacaktır.
http://127.0.0.1:8000/blog => index metodu
http://127.0.0.1:8000/blog/index => index metodu
http://127.0.0.1:8000/blog/posts => posts metodu