Menu
CoddyTech

صفحة لكل مشروب

جزء من قسم أساسيات Django في رحلة Django على Coddy. الدرس 7 من 23.

أصبحت مشروبات المقهى الآن في DRINKS، وهو قاموس في menu/views.py. ومفاتيحه، مثل flat-white، هي مقاطع URL: كلمات بأحرف صغيرة تفصل بينها واصلات، صُممت لتظهر في عنوان URL.

يطابق محوّل slug الأحرف والأرقام والواصلات والشرطات السفلية. هنا، يمنح كل فرد من طاقم العمل صفحة، ويُبحث عنه في قاموس:

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/، يحصل العرض على handle="maya-cohen" ويستخدمه مفتاحًا. يخدم مسار واحد وعرض واحد القاموس بأكمله: يحصل أي إدخال جديد على صفحته من دون كتابة أي شيفرة جديدة.

challenge icon

التحدي

سهل

أنشئ صفحة خاصة لكل مشروب في DRINKS.

  1. في menu/urls.py، أضف مسارًا واحدًا يطابق /drinks/latte/ و/drinks/flat-white/ وكل مفتاح آخر. وجّهه إلى views.drink.
  2. في menu/views.py، اكتب العرض drink الذي يبحث عن المفتاح في DRINKS. يعرض الاسم داخل <h1>، ثم الوصف داخل <p>.

افتح /drinks/flat-white/: سترى Flat White.

جرّب بنفسك

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 iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس أساسيات Django

تدرّب بنفسك: Playground لـ Django