Menu
CoddyTech

Sorgu Dizeleri

Coddy'nin Django Journey'sinin Django Temelleri bölümünün bir parçası. Ders 8 / 23.

Sipariş sayfasında her zaman orta boy yazar. Müşterinin seçtiği boyut, soru işaretinden sonra adreste yer alabilir: /order/?size=large.

Bu kısım sorgu dizesidir: name=value çiftleri & ile birleştirilir. Rota'nın parçası değildir; bu nedenle path("search/", ...), /search/?q=cake ile de eşleşir. Görünüm, çiftleri bir sözlük gibi çalışan request.GET üzerinden okur:

def search(request):
    word = request.GET.get("q", "")
    if len(word) > 30:
        word = word[:30]
    return HttpResponse(f"Results for {word}")

.get(), adı bulunamadığında kullanılacak varsayılan bir değer alır; request.GET["q"] ise bunun yerine hata verir. Her değer metin olarak gelir ve herkes ? işaretinden sonra istediğini yazabilir; bu yüzden bir değeri kullanmadan önce kontrol et. Yalnızca bazı değerleri kabul etmek için değeri izin verilenler listesiyle karşılaştır ve diğer tüm değerler için varsayılan bir değer kullan.

challenge icon

Görev

Kolay

“order” sayfasının boyutu adresten okumasını sağla.

  1. order görünümünde, boyut eksik olduğunda hata oluşmaması için request.GET içinden size değerini oku.
  2. ?size=large için You ordered a large coffee. yanıtını ver. Boyutu cümleye ekle; böylece small ve medium da çalışır.
  3. Diğer tüm boyutlarda veya boyut belirtilmediğinde orta boy sipariş verilir.

/order/?size=huge adresini aç: You ordered a medium coffee. mesajını 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>")


def drink(request, slug):
    item = DRINKS[slug]
    return HttpResponse(f"<h1>{item['name']}</h1><p>{item['description']}</p>")


def order(request):
    size = "medium"
    return HttpResponse(f"You ordered a {size} coffee.")

Django Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Django playground