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 yer alıyor. flat-white gibi anahtarları slug olarak adlandırılır: küçük harfli sözcükler tirelerle birleştirilir ve URL'de kullanılmak üzere oluşturulur.
slug dönüştürücüsü harfleri, rakamları, tireleri ve alt çizgileri eşleştirir. Burada, sözlükte aranan her çalışan için bir sayfa sunar:
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 yazılmadan kendi sayfasını alır.
Görev
KolayDRINKS içindeki her içeceğe /drinks/ ve ardından anahtarından oluşan bir sayfa ver:
/drinks/latte/,/drinks/flat-white/ve diğer tüm anahtarlarla eşleşen tek bir rota;- içeceğin adını bir
<h1>içinde, ardından açıklamasını bir<p>içinde gösteren birdrinkgörünümü.
Run düğmesine bas: önizleme /drinks/latte/ adresinde açılır.
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