Claude Code Django: Python-Webentwicklung mit KI-Unterstützung
Django ist eines der ausgreiftesten Web-Frameworks der Python-Welt — batteries included, Admin-Interface, ORM, Auth-System, alles dabei. Gleichzeitig hat Django eine steile Lernkurve: MTV-Pattern, Migrations, QuerySets, Serializer — bis alles zusammenspielt, vergehen oft Stunden. Claude Code Django verkürzt diese Phase drastisch: Models entwerfen, Views schreiben, Testfälle erzeugen — Claude Code arbeitet direkt in deinem Projektverzeichnis mit.
Dieser Artikel zeigt den kompletten Django-Workflow mit Claude Code: vom ersten startproject bis zu JWT-Authentication im Django REST Framework.
Claude Code Mastery — Django, Agents, Hooks auf Deutsch
Der Kurs zeigt, wie du Claude Code wirklich produktiv einsetzt — für Django-Projekte, autonome Agents und professionelle Workflows. Einmalig bezahlt, kein Abo.
Zum Kurs — Jetzt starten → Einmalzahlung · Kein Abo · 14 Tage Rückgaberecht1. Was ist Django?
Django ist ein Python-Web-Framework, das nach dem Prinzip "Don't repeat yourself" gebaut ist. Es folgt dem MTV-Pattern (Model – Template – View), das dem bekannteren MVC-Pattern entspricht, aber Django-spezifisch benannt ist:
- Model — die Datenbankschicht, definiert als Python-Klassen
- Template — die Darstellungsschicht, HTML mit Django Template Language
- View — die Logikschicht, verarbeitet Requests und gibt Responses zurück
Was Django von anderen Frameworks unterscheidet: das eingebaute Admin-Interface. Sobald du deine Models definiert hast, generiert Django automatisch ein vollständiges Backend-Interface zum Verwalten der Daten — ohne eine einzige Zeile zusätzlichen Code. Dazu kommt ein ausgereiftes ORM, ein Auth-System, Formulare, Caching, Internationalisierung und mehr — alles im Standard-Paket.
Django vs. Flask vs. FastAPI: Django ist das schwergewichtige Framework mit allem dabei. Flask ist minimalistisch und eignet sich für kleine APIs. FastAPI ist auf asynchrone, hochperformante APIs ausgelegt. Für klassische Web-Applikationen mit Datenbank, Admin und Auth ist Django die produktivste Wahl.
2. Projekt erstellen: startproject, startapp, URLs, Views
Ein neues Django-Projekt beginnt immer mit zwei Befehlen:
pip install django
django-admin startproject meinprojekt .
python manage.py startapp blog
startproject erzeugt die Hauptkonfiguration: settings.py, urls.py, wsgi.py. startapp erzeugt eine App — Django-Projekte bestehen aus mehreren Apps, die jeweils einen abgegrenzten Bereich der Anwendung abdecken.
Mit Claude Code kannst du diesen Setup-Prozess beschleunigen und gleichzeitig erklären lassen:
claude "Ich habe ein frisches Django-Projekt mit einer App 'blog' erstellt.
Zeig mir, wie ich:
1. Die App in settings.py registriere
2. Eine erste URL-Route in urls.py anlege
3. Eine einfache View schreibe, die 'Hallo Django' zurückgibt"
Claude Code liest die vorhandenen Dateien, erkennt die Django-Projektstruktur und schreibt den nötigen Code direkt in die richtigen Dateien — inklusive der URL-Verknüpfung zwischen Projekt und App. Besonders hilfreich für Einsteiger: Claude Code erklärt dabei, warum jede Zeile so geschrieben ist.
Class-Based Views vs. Function-Based Views
Django bietet zwei Stile für Views. Claude Code hilft dir, den richtigen zu wählen:
claude "Schreibe mir eine ListView für mein BlogPost-Model.
Welchen Vorteil hat die Class-Based View hier gegenüber einer Function-Based View?"
3. Django ORM: Models, Migrations, Queries
Das Django ORM ist der Kern jeder Django-Anwendung. Models werden als Python-Klassen definiert, Migrations übersetzen diese Klassen in Datenbankschemas:
# blog/models.py
from django.db import models
from django.contrib.auth.models import User
class Post(models.Model):
title = models.CharField(max_length=200)
slug = models.SlugField(unique=True)
content = models.TextField()
author = models.ForeignKey(User, on_delete=models.CASCADE)
published_at = models.DateTimeField(null=True, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ['-created_at']
def __str__(self):
return self.title
Claude Code ist besonders stark beim Entwerfen von Models. Beschreibe dein Datenmodell in natürlicher Sprache — Claude Code übersetzt es in korrekte Django-Feldtypen inklusive der richtigen on_delete-Strategien, related_name-Konfigurationen und Meta-Optionen:
claude "Ich baue ein E-Commerce-System. Entwirf die Models für:
- Produkt (Name, Preis, Lagerbestand, Kategorien als M2M)
- Bestellung (User, Status, Gesamtbetrag)
- Bestellposition (Bestellung, Produkt, Menge, Einzelpreis)"
Migrations erstellen und anwenden
python manage.py makemigrations
python manage.py migrate
Wenn Migrations schiefgehen — etwa bei komplexen Model-Änderungen — hilft Claude Code bei der Diagnose:
python manage.py makemigrations 2>&1 | claude "Was ist das Problem und wie löse ich es?"
QuerySets: filter, exclude, annotate
Das Django ORM ist ausdrucksstark, aber QuerySet-Methoden wie annotate, select_related und prefetch_related sind für Einsteiger nicht immer intuitiv. Claude Code generiert effiziente Queries auf Beschreibung:
claude "Schreibe mir einen QuerySet der:
- Alle Posts des letzten Monats holt
- Die Anzahl der Kommentare pro Post annotiert
- N+1-Probleme durch select_related vermeidet
- Nach Kommentaranzahl absteigend sortiert"
N+1-Problem: Das häufigste Performance-Problem in Django. Wenn du in einer Schleife auf ForeignKey-Relationen zugreifst, erzeugt Django für jedes Objekt eine eigene Datenbankabfrage. Lösung: select_related() für ForeignKey/OneToOne, prefetch_related() für ManyToMany. Claude Code erkennt N+1-Muster im bestehenden Code und schlägt die richtige Lösung vor.
4. Django REST Framework: Serializers, ViewSets, Router
Für APIs auf Basis von Django ist das Django REST Framework (DRF) der Standard. Installation:
pip install djangorestframework
# settings.py: INSTALLED_APPS += ['rest_framework']
DRF besteht aus drei Kernkonzepten: Serializers validieren und wandeln Daten um, ViewSets bündeln CRUD-Operationen, und der Router erzeugt automatisch URL-Muster:
# blog/serializers.py
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
author_name = serializers.CharField(source='author.get_full_name', read_only=True)
class Meta:
model = Post
fields = ['id', 'title', 'slug', 'content', 'author_name', 'published_at']
read_only_fields = ['slug']
# blog/views.py
from rest_framework import viewsets, permissions
from .models import Post
from .serializers import PostSerializer
class PostViewSet(viewsets.ModelViewSet):
queryset = Post.objects.select_related('author').all()
serializer_class = PostSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
def perform_create(self, serializer):
serializer.save(author=self.request.user)
# blog/urls.py
from rest_framework.routers import DefaultRouter
from .views import PostViewSet
router = DefaultRouter()
router.register(r'posts', PostViewSet)
urlpatterns = router.urls
Claude Code schreibt Serializers und ViewSets auf Beschreibung deiner Anforderungen — inklusive der richtigen Permission-Klassen und Custom-Actions via @action-Decorator:
claude "Ich brauche einen ViewSet für Posts mit einer Custom-Action
'/posts/{id}/publish/' die das published_at-Datum setzt.
Nur der Autor des Posts darf publishen."
5. Authentication: django-allauth und JWT
Django bringt ein eingebautes Auth-System mit, aber für moderne Web-Apps sind zwei Erweiterungen Standard:
django-allauth für Social Login
django-allauth ergänzt Django um OAuth-Login via Google, GitHub, Facebook und Dutzende weitere Provider — inklusive E-Mail-Verifizierung und Password-Reset:
pip install django-allauth
# settings.py:
INSTALLED_APPS += [
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google',
]
SITE_ID = 1
AUTHENTICATION_BACKENDS = ['allauth.account.auth_backends.AuthenticationBackend']
Claude Code richtet allauth komplett ein — Settings, URL-Konfiguration, Adapter-Klassen für Custom-User-Models und die nötigen Migrationen:
claude "Richte django-allauth für mein Projekt ein.
Ich habe ein Custom User Model mit 'email' als USERNAME_FIELD.
Google und GitHub sollen als Social Provider verfügbar sein."
JWT mit djangorestframework-simplejwt
Für REST APIs ist JWT-Authentication die übliche Wahl. djangorestframework-simplejwt ist die empfohlene Bibliothek:
pip install djangorestframework-simplejwt
# settings.py:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}
# urls.py:
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
urlpatterns += [
path('api/token/', TokenObtainPairView.as_view()),
path('api/token/refresh/', TokenRefreshView.as_view()),
]
Claude Code hilft dabei, Custom Claims in die JWT-Tokens einzubauen und Token-Rotation sowie Blacklisting einzurichten:
claude "Ich möchte im JWT-Token zusätzlich die User-Rolle und
die Organisation-ID speichern. Wie erweitere ich TokenObtainPairSerializer?"
6. Claude Code Django Tipps: Models, Views, Tests
Drei konkrete Workflows, die im Django-Alltag den größten Zeitgewinn bringen:
Models aus Anforderungen generieren
Beschreibe dein Datenmodell in natürlicher Sprache — Claude Code generiert vollständige Models mit allen Feldtypen, Constraints, Meta-Klassen und __str__-Methoden. Spar dir den Blick in die Dokumentation für jedes einzelne Feld:
claude "Analysiere meine bestehenden Models in models.py und
schlage vor, welche Indexes ich für bessere Query-Performance brauche."
Views und Serializers aus bestehenden Models
Claude Code liest deine vorhandenen Models und generiert daraus passende Serializers und ViewSets — inklusive der richtigen Nested-Serializers für ForeignKey-Relationen:
claude "Lies meine Models in blog/models.py und erstelle
vollständige DRF-Serializers und ViewSets für alle Models.
Nested Serializers für ForeignKey-Relationen, Read-Only für berechnete Felder."
Testfälle automatisch erstellen
Django-Tests schreiben ist zeitaufwendig — Fixtures anlegen, API-Calls simulieren, Assertions formulieren. Claude Code übernimmt das:
claude "Schreibe vollständige Tests für meinen PostViewSet:
- Unauthentifizierter User kann Posts lesen, aber nicht erstellen
- Authentifizierter User kann nur eigene Posts bearbeiten
- Publish-Action setzt published_at korrekt
Nutze Django TestCase und DRF APITestCase."
"Models definieren, Serializers schreiben, Tests bauen — drei Aufgaben, die jeweils eine Stunde kosten. Mit Claude Code: 15 Minuten für alle drei zusammen, weil Claude Code dein gesamtes Projekt kennt und den Kontext nicht verliert."
Der entscheidende Vorteil gegenüber Code-Snippets aus Stack Overflow oder der Dokumentation: Claude Code sieht dein konkretes Projekt. Es kennt deine Model-Namen, deine Feldnamen, deine URL-Struktur — und schreibt Code, der sofort passt, statt Code, den du erst anpassen musst.
Verwandte Artikel:
- Claude Code für Python-Projekte — allgemeine Python-Workflows mit Claude Code
- Claude Code Debugging — Stack Traces analysieren, Root-Cause finden
Claude Code Mastery — Django und mehr auf Deutsch
Django ist ein Thema im Kurs. Dazu kommen Agents, MCP-Server, Hooks und Multi-Agent-Workflows. Vollständig auf Deutsch, einmalig bezahlt.
Jetzt starten → Einmalzahlung · Kein Abo · 14 Tage RückgaberechtKurs · Claude Code Mastery
Von Django bis zum produktiven AI-Agenten
Django. Agents. MCP. Hooks. Multi-Agent-Workflows. Alles auf Deutsch, einmalig bezahlt — kein Abo, keine Plattformabhängigkeit.
Einmalzahlung · Kein Abo · 14 Tage Rückgaberecht