django
High-level Python framework with batteries included for rapid, secure web development.
Core Concepts
- ORM: queryset API with lazy evaluation,
select_related/prefetch_relatedfor N+1 prevention - Admin interface: auto-generated CRUD from models, customizable via
ModelAdminclasses - Class-based views:
ListView,DetailView,CreateViewreduce boilerplate over function views - DRF:
ModelViewSet+Serializerclasses for RESTful APIs with browsable docs
Common Patterns
- Signals:
post_save/pre_deletefor decoupled side effects like cache invalidation - Middleware: request/response pipeline for auth, CORS, logging, or rate limiting
- Auth system: built-in
Usermodel, permissions, groups, and session-based authentication - Testing:
TestCasewithClientfor request simulation,assertContainsfor template checks
Best Practices
- Use
select_relatedfor FK relationships andprefetch_relatedfor M2M to avoid N+1 queries - Keep business logic in model methods or service layers, not in views or signals
- Apply database-level constraints (unique, FK) alongside model-level validation
- Use
@login_requiredand@permission_requireddecorators rather than manual checks
Common Code Patterns
class ArticleView(DetailView): model = Article; template_name = "article.html"@api_view(["GET"])with@permission_classes([IsAuthenticated])for DRF endpoints
Source: skeletorflet/opencode-supreme-setup — distributed by TomeVault.