Django Pro
Production-Ready Django-Anwendungen entwickeln
Django-Entwickler haben Schwierigkeiten mit komplexen Architekturentscheidungen und modernen Django 5.x-Funktionen. Dieser Skill bietet Expertenhilfe zu async Views, DRF, Celery und skalierbaren Mustern für die Entwicklung wartbarer Webanwendungen.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "Django Pro". Optimiere einen Queryset, der Autoren mit ihren Beiträgen und Kommentaren abruft
النتيجة المتوقعة:
Verwende select_related und prefetch_related um N+1-Abfragen zu eliminieren:
Author.objects.select_related('profile').prefetch_related(
'posts',
'posts__comments',
'posts__tags'
).annotate(
post_count=Count('posts', distinct=True),
comment_count=Count('posts__comments', distinct=True)
)
Dies reduziert die Datenbankabfragen von 1 + N + (N*M) auf nur 3 Abfragen.
استخدام "Django Pro". Erstelle eine benutzerdefinierte Berechtigungsklasse für Objekt-Level-Zugriff
النتيجة المتوقعة:
Objekt-Level-Berechtigung, die nur Autoren das Bearbeiten ihrer Beiträge erlaubt:
class IsAuthorOrReadOnly(permissions.BasePermission):
def has_object_permission(self, request, view, obj):
if request.method in permissions.SAFE_METHODS:
return True
return obj.author == request.user
Anwenden auf ModelViewSet mit permission_classes = [IsAuthenticated, IsAuthorOrReadOnly]
التدقيق الأمني
آمنThis is a prompt-only instructional skill with no executable code. Static analysis scanned 0 files and detected 0 security issues with a risk score of 0/100. The skill provides Django development guidance and best practices without any code execution, network access, or file system operations. Safe for publication.
درجة الجودة
ماذا يمكنك بناءه
Enterprise Django-Architektur
Entwerfen einer skalierbaren Multi-Tenant-SaaS-Anwendung mit geeigneten Service-Layer-Mustern, Repository-Abstraktionen und umgebungsspezifischen Konfigurationen.
API-Entwicklung mit DRF
Implementieren von RESTful APIs mit JWT-Authentifizierung, benutzerdefinierten Berechtigungen, Viewsets und umfassender API-Dokumentation mit Django REST Framework.
Performance-Optimierung
Identifizieren und Lösen von N+1-Abfrageproblemen, Implementieren von Datenbank-Indexierungsstrategien und Konfigurieren von Caching-Schichten für stark frequentierte Django-Anwendungen.
جرّب هذه الموجهات
Erstelle ein Django-Model für einen Blogbeitrag mit Titel, Inhalt, Autor, Tags und Veröffentlichungsdatum. Füge geeignete Indizes hinzu, einen benutzerdefinierten Manager für veröffentlichte Beiträge und eine __str__-Methode. Folge den Django 5.x-Konventionen.
Erstelle einen Django REST Framework API-Endpoint für die Benutzerregistrierung mit E-Mail-Verifizierung. Füge einen Serializer mit Validierung hinzu, ein Viewset, JWT-Token-Generierung und eine mit Celery in Warteschlange gestellte E-Mail-Sende-Aufgabe.
Konvertiere diesen synchronen Django-View zu einem Async-View, der Daten von drei externen APIs gleichzeitig abruft. Verwende asyncio.gather, füge geeignete Fehlerbehandlung hinzu und implementiere Timeout-Limits für jede Anfrage.
Implementiere einen WebSocket-Consumer mit Django Channels für eine Echtzeit-Chat-Funktion. Füge Verbindungsmanagement hinzu, Nachrichten-Broadcasting an Raumgruppen, Persistenz der Nachrichten in der Datenbank und Redis-Channel-Layer-Konfiguration.
أفضل الممارسات
- Verwende Djangos integrierte Funktionen, bevor du Drittanbieter-Pakete hinzufügst, um Abhängigkeiten und Wartungsaufwand zu reduzieren
- Implementiere Datenbank-Level-Constraints in Models zusätzlich zur Anwendungsebenen-Validierung für Datenintegrität
- Schreibe Tests auf mehreren Ebenen: Unit-Tests für Models und Utilities, Integrationstests für Views und APIs, End-to-End-Tests für kritische Benutzerabläufe
تجنب
- Business-Logik in Views oder Templates anstatt einer Service-Layer für Trennung der Anliegen zu verwenden
- filter() in Schleifen anstatt Bulk-Operationen oder korrekt verknüpfter Abfragen zu verwenden, was N+1-Abfrageprobleme verursacht
- Geheimnisse in settings.py anstatt Umgebungsvariablen mit django-environ oder ähnlichen Paketen zu speichern