Menu
CoddyTech

Halaman untuk Setiap Minuman

Termasuk bagian Dasar-Dasar Django dalam perjalanan Django di Coddy. Pelajaran 7 dari 23.

Minuman kafe kini tersimpan di DRINKS, sebuah dictionary di menu/views.py. Kuncinya, seperti flat-white, adalah slug: kata-kata huruf kecil yang disambungkan dengan tanda hubung, dibuat agar dapat digunakan dalam URL.

Konverter slug mencocokkan huruf, digit, tanda hubung, dan garis bawah. Di sini, konverter tersebut memberikan setiap anggota staf sebuah halaman yang dicari dalam dictionary:

path("team/<slug:handle>/", views.team_member),


def team_member(request, handle):
    person = STAFF[handle]
    return HttpResponse(f"<h2>{person['role']}</h2>")

Untuk /team/maya-cohen/, view menerima handle="maya-cohen" dan menggunakannya sebagai kunci. Satu route dan satu view melayani seluruh dictionary: entri baru mendapatkan halamannya tanpa kode baru.

challenge icon

Tantangan

Mudah

Buat halaman untuk setiap minuman di DRINKS pada /drinks/ ditambah key-nya:

  • satu rute yang cocok dengan /drinks/latte/, /drinks/flat-white/, dan setiap key lainnya;
  • sebuah view drink yang menampilkan nama minuman di dalam <h1>, lalu deskripsinya di dalam <p>.

Tekan Run: pratinjau akan membuka /drinks/latte/.

Coba sendiri

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>")
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Django

Latihan sendiri: Playground Django