صفحة لكل مشروب
جزء من قسم أساسيات 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" ويستخدمه مفتاحًا. يخدم مسار واحد وعرض واحد القاموس بأكمله: يحصل أي إدخال جديد على صفحته من دون كتابة أي شيفرة جديدة.
التحدي
سهلأنشئ صفحة خاصة لكل مشروب في DRINKS.
- في
menu/urls.py، أضف مسارًا واحدًا يطابق/drinks/latte/و/drinks/flat-white/وكل مفتاح آخر. وجّهه إلىviews.drink. - في
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>")
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات Django
تدرّب بنفسك: Playground لـ Django