Django Pro
프로덕션 준비된 Django 애플리케이션 구축
Django 개발자들은 복잡한 아키텍처 결정과 최신 Django 5.x 기능에 어려움을 겪습니다. 이 스킬은 비동기 뷰, DRF, Celery 및 확장 가능한 패턴에 대한 전문가 지침을 제공하여 유지관리 가능한 웹 애플리케이션을 구축합니다.
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“Django Pro”。 작성자와 해당 포스트 및 댓글을 가져오는 쿼리셋 최적화
预期结果:
select_related 및 prefetch_related를 사용하여 N+1 쿼리 제거:
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)
)
이렇게 하면 데이터베이스 쿼리가 1 + N + (N*M)에서 단 3개의 쿼리로 줄어듭니다.
正在使用“Django Pro”。 오브젝트 레벨 액세스를 위한 커스텀 권한 클래스 생성
预期结果:
작성자만 자신의 포스트를 편집할 수 있도록 허용하는 오브젝트 레벨 권한:
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
permission_classes = [IsAuthenticated, IsAuthorOrReadOnly]와 함께 ModelViewSet에 적용
安全审计
安全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.
质量评分
你能构建什么
엔터프라이즈 Django 아키텍처
적절한 서비스 레이어 패턴, 리포지토리 추상화 및 환경별 구성을 갖춘 확장 가능한 멀티테넌트 SaaS 애플리케이션 설계
DRF를 통한 API 개발
JWT 인증, 커스텀 권한, 뷰셋 및 Django REST Framework를 사용한 종합 API 문서화와 함께 RESTful API 구현
성능 최적화
N+1 쿼리 문제 식별 및 해결, 데이터베이스 인덱싱 전략 구현, 트래픽이 많은 Django 애플리케이션용 캐싱 레이어 구성
试试这些提示
제목, 콘텐츠, 작성자, 태그 및 게시 날짜가 있는 블로그 포스트용 Django 모델을 생성합니다. 적절한 인덱스, 게시된 포스트용 커스텀 매니저 및 __str__ 메서드를 포함합니다. Django 5.x 컨벤션을 따릅니다.
이메일 확인이 포함된 사용자 등록을 위한 Django REST Framework API 엔드포인트를 구축합니다. 유효성 검사기가 있는 직렬화 생성, 뷰셋, JWT 토큰 생성 및 Celery로 큐에 넣은 이메일 전송 태스크를 포함합니다.
이 동기 Django 뷰를 세 개의 외부 API에서 동시에 데이터를 가져오는 비동기 뷰로 변환합니다. asyncio.gather를 사용하고 적절한 오류 처리를 추가하며 각 요청에 대한 제한 시간 구현.
실시간 채팅 기능을 위해 Django Channels를 사용하여 WebSocket 컨슈머를 구현합니다. 연결 처리, 방 그룹으로 메시지 브로드캐스트, 데이터베이스 메시지 영속성 및 Redis 채널 레이어 구성을 포함합니다.
最佳实践
- 타사 패키지를 추가하기 전에 Django의 기본 기능을 사용하여 의존성 및 유지보수 부담 감소
- 데이터 무결성을 위해 애플리케이션 수준 검증 외에 모델에서 데이터베이스 수준 제약 조건 구현
- 여러 수준에서 테스트 작성: 모델 및 유틸리티를 위한 단위 테스트, 뷰 및 API를 위한 통합 테스트, 중요 사용자 흐름을 위한 엔드투엔드 테스트
避免
- 관심사 분리를 위해 서비스 레이어를 사용하지 않고 비즈니스 로직을 뷰나 템플릿에 배치
- 대량 작업이나 적절하게 조인된 쿼리 대신 루프에서 filter()를 사용하여 N+1 쿼리 문제 발생
- django-environ 또는 유사 패키지를 사용하여 환경 변수에 시크릿을 저장하지 않고 settings.py에 시크릿 저장