Her İçecek İçin Bir Sayfa
Coddy'nin Django Journey'sinin Django Temelleri bölümünün bir parçası. Ders 7 / 23.
Kafenin içecekleri artık DRINKS içinde, menu/views.py dosyasındaki bir sözlükte bulunuyor. flat-white gibi anahtarları slug olarak adlandırılır: URL'de kullanılmak üzere oluşturulmuş, tirelerle birleştirilmiş küçük harfli sözcüklerdir.
slug dönüştürücüsü harfleri, rakamları, tireleri ve alt çizgileri eşleştirir. Burada, bir sözlükte aranan her personel üyesi için bir sayfa sağlar:
path("team/<slug:handle>/", views.team_member),
def team_member(request, handle):
person = STAFF[handle]
return HttpResponse(f"<h2>{person['role']}</h2>")/team/maya-cohen/ için görünüm, handle="maya-cohen" değerini alır ve bunu anahtar olarak kullanır. Tek bir rota ve tek bir görünüm, sözlüğün tamamına hizmet eder: yeni bir kayıt, yeni bir kod yazmadan kendi sayfasına sahip olur.
Görev
KolayDRINKS içindeki her içeceğe kendi sayfasını ver.
menu/urls.pydosyasına/drinks/latte/,/drinks/flat-white/ve diğer tüm anahtarlarla eşleşen bir rota ekle. Rotayıviews.drinkişlevine yönlendir.menu/views.pydosyasında, anahtarıDRINKSiçinde arayan birdrinkgörünümü yaz. Adı bir<h1>içinde, ardından açıklamayı bir<p>içinde döndürür.
/drinks/flat-white/ adresini aç: Flat White'ı görürsün.
Kendin dene
from django.http import HttpResponse
DRINKS = {
"espresso": {"name": "Espresso", "price": 2.5, "description": "A short, strong shot of coffee."},
"latte": {"name": "Latte", "price": 3.5, "description": "Espresso with lots of steamed milk."},
"flat-white": {"name": "Flat White", "price": 3.75, "description": "Espresso with a thin layer of silky milk."},
"hot-chocolate": {"name": "Hot Chocolate", "price": 3, "description": "Dark chocolate melted into warm milk."},
}
def home(request):
return HttpResponse("<h1>Welcome to Corner Café</h1><p>Fresh coffee and cake every day.</p>")
def about(request):
return HttpResponse("Corner Café opened in 2026.")
def hours(request):
return HttpResponse("Open every day from 8:00 to 18:00.")
def contact(request):
return HttpResponse("Write to us at hello@cornercafe.example.")
def table(request, number):
return HttpResponse(f"<h1>Table {number}</h1>")
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Django Temelleri bölümündeki tüm dersler
2Dinamik URL'ler
Yol DönüştürücüleriHer İçecek İçin Bir SayfaSorgu DizeleriHttp404 Hatası YükseltmeKendi başına pratik yap: Django playground