Çarşamba, Ekim 16, 2024
Sanal Gündem
Ana SayfaKodlamaPython Django Dinamik Url & View Tanımlama

Python Django Dinamik Url & View Tanımlama

Python Django’da birden fazla URL tanımlamak için urls.py dosyasında urlpatterns listesine daha fazla path veya re_path fonksiyonunu ekleyebilirsiniz. İşte bir örnek:

from django.urls import path, re_path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('about/', views.about, name='about'),
    path('contact/', views.contact, name='contact'),
    re_path(r'^articles/(?P<category>\w+)/$', views.article_list, name='article_list'),
    re_path(r'^articles/(?P<category>\w+)/(?P<slug>[-\w]+)/$', views.article_detail, name='article_detail'),
]

Yukarıdaki örnekte, urlpatterns listesine 5 adet URL tanımlaması eklenmiştir. İlk üçü sabit URL’lerdir ('', 'about/', 'contact/') ve bunlar için path fonksiyonu kullanılmıştır. Son iki URL ise dinamik URL’lerdir ve bunlar için re_path fonksiyonu kullanılmıştır.

Dinamik URL’ler, re_path fonksiyonu ile tanımlanır ve düzenli ifadeler (regular expressions) kullanarak URL kalıplarını eşleştirir. Yukarıdaki örnekte, article_list ve article_detail görünümleri için iki farklı dinamik URL tanımlaması yapılmıştır. Bu tanımlamalarda (?P<category>\w+) ve (?P<slug>[-\w]+) ifadeleri, URL’den yakalanacak parametreleri belirtir.

Görünüm fonksiyonlarını bu URL’lere eşleştirmek için views.py dosyasında ilgili fonksiyonları oluşturmanız gerekmektedir. Örneğin:

from django.shortcuts import render
from django.http import HttpResponse

def home(request):
    return HttpResponse("Ana Sayfa")

def about(request):
    return HttpResponse("Hakkımızda")

def contact(request):
    return HttpResponse("İletişim")

def article_list(request, category):
    return HttpResponse(f"Makaleler - Kategori: {category}")

def article_detail(request, category, slug):
    return HttpResponse(f"Makale Detayı - Kategori: {category}, Slug: {slug}")

Yukarıdaki örnekte, article_list ve article_detail fonksiyonları, ilgili dinamik URL’lere eşleşen parametreleri alır ve bu parametreleri kullanarak içerik üretir. Daha karmaşık içerikler için Django şablonlarını veya başka yöntemleri kullanabilirsiniz.

Bu şekilde, Django’da birden fazla URL tanımlayabilir ve ilgili görünüm fonksiyonlarına bağlayabilirsiniz. Her bir URL, farklı bir web adresini temsil eder ve kullanıcının tarayıcısı üzerinden erişebileceği farklı içerikleri sunar.

Yunus Emre Altay
Yunus Emre Altayhttp://yunusemrealtay.com.tr
Biz, yenilikçi çözümler ve dijital dönüşüm süreçlerinde uzmanlaşmış olarak, web, mobil ve masaüstü yazılımlar geliştiriyor ve işletmelerinizi geleceğe taşıyoruz. Analizlerimizi sıkı çalışması ve deneyimi ile, size özel çözüm önerileri sunarak iş süreçlerinizi optimize etmeye odaklanıyoruz
RELATED ARTICLES
- Reklam Alanı -

En Popüler

Son Yorumlar