Django Request–Response Mantığı
Django'nun kalbi, HTTP isteklerini (Request) alıp, işleyip, geriye bir cevap (Response) döndürme sürecinde atar. Bu süreci tam olarak anlamak, framework'e tamamen hakim olmanızı sağlar.
Web geliştirmede her şey tek bir temel prensibe dayanır: Bir istemci (tarayıcı) bir şey ister (Request) ve sunucu buna bir karşılık verir (Response). Django, bu süreci soyutlayarak geliştiriciler için güvenli, hızlı ve yönetilebilir bir yapı sunar.
Web Uygulamalarında İstek–Yanıt Döngüsü
HTTP Request & Response nedir?
Django’da bir isteğin sistemden nasıl geçtiği
HttpRequestnesnesiGET, POST, URL parametreleri
HttpResponsetürleriJSON response
Redirect & 404/403/500 cevapları
Middleware ile request–response kontrolü
Gerçek hayat örnekleri
🌍 1. Request & Response Nedir?
Bir web uygulamasında her şey istek (request) ile başlar ve yanıt (response) ile biter.
📌 Örnek:
Tarayıcı:
https://site.com/login→ requestSunucu: HTML sayfası döner → response
Kullanıcı → Request → Django → Response → Kullanıcı
🔁 2. Django Request–Response Akışı
Django’da istek şu sırayla ilerler:
Tarayıcı HTTP isteği gönderir
urls.pyisteği yakalarİlgili
viewçalışırView bir
HttpResponsedöndürürDjango cevabı tarayıcıya gönderir
📊 Akış Diyagramı:
Browser
↓
urls.py
↓
views.py
↓
HttpResponse
↓
Browser
📦 3. HttpRequest Nedir?
Her view fonksiyonuna Django otomatik olarak request nesnesini gönderir.
def home(request):
return HttpResponse("Merhaba Django")
Buradaki request:
👉 django.http.HttpRequest sınıfından bir nesnedir.
🔍 4. Request İçeriğini İncelemek
📌 request.method
İsteğin türünü verir.
request.method
| Method | Anlamı |
|---|---|
| GET | Veri almak |
| POST | Veri göndermek |
| PUT | Güncellemek |
| DELETE | Silmek |
📌 request.GET (Query String)
URL:
/search?q=django&page=2
q = request.GET.get("q")
page = request.GET.get("page")
📎 request.GET → dictionary gibi çalışır
📌 request.POST (Form Verileri)
HTML Form:
<form method="post">
<input name="username">
</form>
username = request.POST.get("username")
⚠️ POST verileri sadece POST isteğinde gelir.
📌 request.FILES (Dosya Yükleme)
file = request.FILES["photo"]
Dosya upload işlemlerinde kullanılır.
📌 request.headers
request.headers["User-Agent"]
Tarayıcı bilgisi, token, vs.
📤 5. HttpResponse Nedir?
Django’da view fonksiyonları mutlaka bir response döndürmelidir.
📌 Basit Response
from django.http import HttpResponse
return HttpResponse("Merhaba")
📌 HTML Döndürme
return HttpResponse("<h1>Hoş Geldiniz</h1>")
Ama genelde template kullanılır 👇
📌 render() ile Template Response
from django.shortcuts import render
def home(request):
return render(request, "home.html")
✔️ HTML
✔️ Context (veri)
✔️ Response
Hepsi birlikte 👍
📊 6. JSON Response (API’ler İçin)
from django.http import JsonResponse
def api(request):
data = {
"status": "ok",
"message": "Merhaba API"
}
return JsonResponse(data)
📌 REST API’lerin temelidir.
🔀 7. Redirect Response
Bir sayfadan başka bir sayfaya yönlendirme:
from django.shortcuts import redirect
return redirect("login")
veya
return redirect("/login/")
🚫 8. Hata Response’ları
❌ 404 – Sayfa Yok
from django.http import Http404
raise Http404("Sayfa bulunamadı")
🔐 403 – Yetkisiz
from django.http import HttpResponseForbidden
return HttpResponseForbidden("Erişim yasak")
9. Middleware ile Request & Response
Middleware, request gelmeden önce ve response gitmeden sonra çalışır.
📌 Kullanım Alanları:
Giriş kontrolü
Loglama
Güvenlik
Dil seçimi
Basit Middleware Örneği:
class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print("Request geldi")
response = self.get_response(request)
print("Response gidiyor")
return response
🧪 10. Gerçek Hayat Senaryosu
📌 Login Örneği
def login_view(request):
if request.method == "POST":
username = request.POST.get("username")
return HttpResponse(f"Hoş geldin {username}")
return render(request, "login.html")
✔️ GET → Form göster
✔️ POST → Veri işle
🧩 11. Request–Response Mantığını Anlayan Ne Kazanır?
✅ Django’yu gerçekten kavrar
✅ API geliştirebilir
✅ Hata ayıklaması kolaylaşır
✅ Middleware & güvenlik öğrenir
✅ Full-stack düşünmeye başlar
🔚 Sonuç
Django’nun kalbi:
Request gelir → View işler → Response gider
Bu döngüyü çözen biri Django’nun %60’ını çözmüş demektir 💪
🌐 Request & Response Teknolojisi Nedir?
Request & Response, web’in temel çalışma prensibidir.
İnternette gördüğün her sayfa, her buton, her form bu teknolojiyle çalışır.
Kısaca:
Kullanıcı ister → Sunucu cevap verir
Günlük Hayattan Örnek
Bir lokantadasın 🍽️
Request (İstek):
Garsona “Bir çorba alabilir miyim?” dersin.Response (Yanıt):
Garson çorbayı getirir.
Web’de de aynı şey olur:
Tarayıcı ister
Sunucu cevap verir
🔁 Teknik Akış (Web Dünyası)
Kullanıcı (Tarayıcı)
↓ Request
Sunucu
↓ Response
Kullanıcı (Tarayıcı)
Bu döngü saniyenin çok küçük bir bölümünde olur.
📥 Request (İstek) Nedir?
Request, tarayıcının sunucuya gönderdiği mesajdır.
Bir request şunları içerir:
📌 1. URL (Adres)
https://site.com/login
📌 2. HTTP Method
| Method | Ne yapar |
|---|---|
| GET | Veri ister |
| POST | Veri gönderir |
| PUT | Veri günceller |
| DELETE | Veri siler |
📌 3. Headers (Başlıklar)
Tarayıcı bilgileri, dil, token vs.
Örnek:
User-Agent: Chrome
Accept-Language: tr
📌 4. Body (Gövde – Opsiyonel)
Form verileri, JSON, dosya vb.
{
"username": "ali",
"password": "1234"
}
📤 Response (Yanıt) Nedir?
Response, sunucunun tarayıcıya verdiği cevaptır.
Response içinde şunlar vardır:
📌 1. Status Code (Durum Kodu)
| Kod | Anlamı |
|---|---|
| 200 | Başarılı |
| 301 | Yönlendirme |
| 403 | Yetkisiz |
| 404 | Bulunamadı |
| 500 | Sunucu Hatası |
📌 2. Headers
Tarayıcıya bilgi verir.
Content-Type: text/html
📌 3. Body (Asıl İçerik)
HTML, JSON, dosya, resim vb.
<h1>Hoş geldin</h1>
⚙️ Django’da Request & Response
Django bu süreci otomatik yönetir.
def home(request):
return HttpResponse("Merhaba")
request→ gelen istekHttpResponse→ giden cevap
🔍 Django Request İçinden Ne Alırız?
| Alan | Açıklama |
|---|---|
| request.method | GET mi POST mu |
| request.GET | URL verileri |
| request.POST | Form verileri |
| request.FILES | Dosyalar |
| request.headers | Header bilgileri |
📦 Django Response Türleri
HttpResponse→ Düz metin / HTMLJsonResponse→ API cevabırender()→ HTML templateredirect()→ Sayfa yönlendirme
🔐 Middleware (Araya Giren Katman)
Middleware:
Request gelmeden önce ve response gitmeden sonra çalışan kapıcıdır 🚪
Kullanım alanları:
Giriş kontrolü
Güvenlik
Loglama
Dil ayarı
🎯 Neden Bu Teknoloji Çok Önemli?
Çünkü:
🌍 Web bunun üstüne kurulu
📱 Mobil uygulamalar API ile çalışır
🔐 Güvenlik burada başlar
🚀 Performans burada yönetilir
Request–Response’u anlayan biri:
Django, Flask, Laravel, Spring fark etmez — hepsini çözer.
🧩 Kafada Netleşmesi İçin Tek Cümle
Web = Request gönder, Response al
Bu kadar temel… ama bu temelin üstüne koskoca internet kurulmuş 🌐
Yorumlar
Yorum Gönder