Django Masterclass
Weiterführender, professioneller Kurs für Webdevelopment in Django
von shopbesitzer · 17. Mai 2026
HTML Tutorial Datei verfügbar
Öffne das Tutorial direkt im Browser oder lade es herunter.
Django Advanced
Skaliere deine Applikationen. Lerne Middleware-Hooks, Signal-Architekturen und optimierte Datenbank-Strukturen für Enterprise-Lösungen.
01 Models & ORM
Meistere komplexe Beziehungen und optimiere Queries mit `select_related` und `prefetch_related`. Lerne, wie man Custom Manager schreibt.
from django.db import models
class ProjectManager(models.Manager):
def active(self):
return self.filter(status='active')
class Project(models.Model):
name = models.CharField(max_length=200)
status = models.CharField(max_length=20, default='active')
objects = ProjectManager() # Custom Manager!
# Effizientes Querying
projects = Project.objects.active().select_related('owner')
Middleware Hooks
Security Middleware
Prüfe Header oder Authentifizierung global für jeden Request.
class CustomSecurity:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# Vor dem View
response = self.get_response(request)
# Nach dem View
return response
Performance Logging
Messe die Zeit, die jeder View benötigt, um eine Antwort zu liefern.
import time
def timing_middleware(get_response):
def middleware(request):
start = time.time()
response = get_response(request)
print(f"Time: {time.time()-start}")
return response
return middleware
Signals: Decoupled Logic ⚡
Signals erlauben es, bestimmte Aktionen auszuführen, wenn ein Modell gespeichert oder gelöscht wird, ohne den Code im View zu vermischen.
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import User
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
# Automatische Profilerstellung bei neuem User!
04 Management Commands
Warum Custom Commands?
- Cron-Jobs zur Datenbereinigung
- Import-Skripte für große Datensätze
Struktur
Speichere deine Skripte in `management/commands/name.py`.
from django.core.management.base import BaseCommand
class Command(BaseCommand):
def handle(self, *args, **options):
self.stdout.write("Running Job...")
Production Ready?
Nutze **WhiteNoise** für statische Dateien und **Gunicorn** als WSGI-Server. Vergiss nie `DEBUG=False` in der Produktion!