Python Django’ da Alternatif 404 Sayfası Oluşturma
Django ile bir web uygulaması geliştirdiğimizde, kullanıcı mevcut olmayan bir url adresine girmek isteyebilir. Bu durumda Django kullanıcının karşısına şık olmayan standart bir 404 sayfası çıkaracaktır. Bunun yerine Django da alternatif bir 404 sayfası oluşturabiliriz.
Aşağıdaki adımları takip ederek alternatif 404 sayfası nasıl oluşturulacağını öğrenebilirsiniz.
1. Adım
Oluşturduğumuz 404 sayfasını görmek için settings.py’ de
DEBUG = False
yapmak gerekiyor.
2. Adım
Daha sonra alternatif 404.html sayfası oluşturmamız gerekiyor. Bu oluşturduğumuz templatelerimizin olduğu klasöre taşıyoruz.
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates'),], # Templates yolu 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
3. Adım
django.urls
fonksiyonlarının içinde önceden tanımlı handler metodları var. Bunu değiştirmek için urls.py
dosyamıza;
from django.urls import path from main.views import * handler404 = 'main.views.handler404' #urls.py dosyasına eklenecek kısım app_name = "main" urlpatterns = [ path('', home, name="home"),
ekliyoruz. Bu şekilde çalışacak handler404
fonksiyonu ile mevcut olan handler404 fonksiyonunu eziyoruz.
4. Adım
main appimizin içinde bulunan views.py dosymızda handler404 fonksiyonumuzu tanımlıyoruz.
# 404 PAGE def handler404(request, exception=None): return render(request, 'auth/404.html')
Aşağıdaki resimde main appimizde bulunan views.py dosyasının konumu ile 404.html sayfamızın bulunduğu templatelerimizin dosya yapısını görebilirsiniz.
Bu adımları bitirdikten sonra browserdan uygulamanızda olmayan bir url girerek 404 sayfasını görüntüleyebilirsiniz.