Django for web development

  1. Django Fundamentals

    1. Python fundamentals for Django
    2. Virtual environments
    3. pip
    4. Django installation
    5. Django project structure
    6. Django applications
    7. settings.py
    8. urls.py
    9. manage.py
    10. Django development server
    11. Django configuration
    12. Environment variables
    13. Development vs production settings
  2. Django CLI

    1. django-admin
    2. manage.py
    3. startproject
    4. startapp
    5. runserver
    6. check
    7. shell
    8. dbshell
    9. makemigrations
    10. migrate
    11. showmigrations
    12. sqlmigrate
    13. createsuperuser
    14. changepassword
    15. collectstatic
    16. test
    17. dumpdata
    18. loaddata
    19. inspectdb
    20. makemessages
    21. compilemessages
  3. URLs & Routing

    1. URL patterns
    2. path()
    3. re_path()
    4. URL parameters
    5. Path converters
    6. Named URLs
    7. URL namespaces
    8. include()
    9. URL reversing
    10. reverse()
    11. redirect()
    12. resolve()
    13. URL organization
  4. HTTP & Django Requests

    1. HTTP methods
    2. GET
    3. POST
    4. PUT
    5. PATCH
    6. DELETE
    7. HTTP status codes
    8. Request objects
    9. Response objects
    10. Headers
    11. Cookies
    12. Sessions
    13. Query parameters
    14. Form data
    15. JSON requests
    16. File uploads
  5. Django Views

    1. Function-based views
    2. Class-based views
    3. Generic views
    4. TemplateView
    5. ListView
    6. DetailView
    7. CreateView
    8. UpdateView
    9. DeleteView
    10. View inheritance
    11. Mixins
    12. Decorators
    13. Custom responses
    14. JSON responses
  6. Templates

    1. Django Template Language
    2. Template variables
    3. Template tags
    4. Template filters
    5. Template inheritance
    6. Base templates
    7. Template includes
    8. Custom template tags
    9. Custom template filters
    10. Static files
    11. Template context
  7. Models

    1. Django models
    2. Model fields
    3. Field options
    4. Model metadata
    5. Model methods
    6. Model managers
    7. Model inheritance
    8. Abstract models
    9. Proxy models
    10. Model relationships
    11. One-to-one relationships
    12. Foreign keys
    13. Many-to-many relationships
    14. Choices
    15. Constraints
    16. Indexes
  8. Django ORM

    1. QuerySets
    2. Query expressions
    3. Filtering
    4. Excluding
    5. Ordering
    6. Slicing
    7. get()
    8. create()
    9. update()
    10. delete()
    11. get_or_create()
    12. update_or_create()
    13. exists()
    14. count()
    15. first()
    16. last()
    17. values()
    18. values_list()
    19. annotate()
    20. aggregate()
    21. F expressions
    22. Q objects
    23. Subqueries
    24. Conditional expressions
  9. Database Design

    1. Relational databases
    2. PostgreSQL
    3. Database normalization
    4. Primary keys
    5. Foreign keys
    6. Constraints
    7. Unique constraints
    8. Indexes
    9. Database transactions
    10. Isolation concepts
    11. Query optimization
    12. N+1 queries
  10. Migrations

    1. Migration fundamentals
    2. makemigrations
    3. migrate
    4. Migration files
    5. Migration dependencies
    6. Data migrations
    7. RunPython
    8. Migration conflicts
    9. Squashing migrations
    10. Migration rollback
    11. Safe schema changes
  11. Django Admin

    1. Django Admin
    2. Model registration
    3. ModelAdmin
    4. List display
    5. Search
    6. Filtering
    7. Ordering
    8. Admin actions
    9. Inline models
    10. Custom forms
    11. Permissions
    12. Admin customization
    13. Custom admin pages
  12. Forms

    1. Django Forms
    2. ModelForms
    3. Form fields
    4. Form validation
    5. Custom validation
    6. clean()
    7. clean_field()
    8. Validation errors
    9. Widgets
    10. Form rendering
    11. File uploads
    12. Multiple forms
  13. Authentication

    1. Django authentication
    2. Users
    3. Groups
    4. Permissions
    5. Password hashing
    6. Login
    7. Logout
    8. Authentication middleware
    9. LoginRequiredMixin
    10. PermissionRequiredMixin
    11. Custom user model
    12. User profile
    13. Password reset
    14. Email verification
    15. Social authentication
  14. Authorization

    1. Permissions
    2. Groups
    3. Object-level permissions
    4. Custom permissions
    5. Permission decorators
    6. Permission mixins
    7. Role-based access control
    8. Access control patterns
  15. Sessions & Cookies

    1. Django sessions
    2. Session backends
    3. Cookies
    4. Session security
    5. Session expiration
    6. Session-based authentication
    7. Session storage
  16. Security

    1. CSRF
    2. XSS protection
    3. SQL injection protection
    4. Clickjacking protection
    5. Host validation
    6. Secure cookies
    7. HTTPS
    8. Security headers
    9. Content Security Policy
    10. Secret management
    11. Security middleware
    12. Security checklist
  17. Static & Media Files

    1. Static files
    2. MEDIA_ROOT
    3. MEDIA_URL
    4. STATIC_ROOT
    5. STATIC_URL
    6. collectstatic
    7. FileField
    8. ImageField
    9. Storage backends
    10. User uploads
    11. Cloud storage
  18. Django REST APIs

    1. Django REST Framework
    2. Serializers
    3. ModelSerializer
    4. APIView
    5. Generic API views
    6. ViewSets
    7. Routers
    8. Request parsing
    9. Response rendering
    10. Status codes
    11. Validation
    12. Pagination
    13. Filtering
    14. Ordering
  19. API Authentication

    1. Session authentication
    2. Token authentication
    3. JWT
    4. OAuth 2.0
    5. API keys
    6. Authentication classes
    7. Permission classes
    8. CORS
    9. CSRF in APIs
    10. Rate limiting
  20. API Design

    1. REST principles
    2. Resources
    3. Endpoints
    4. HTTP methods
    5. Status codes
    6. Request validation
    7. Response structure
    8. Error responses
    9. Pagination
    10. Filtering
    11. Sorting
    12. Versioning
    13. API documentation
  21. Django Testing

    1. Django TestCase
    2. pytest
    3. pytest-django
    4. Unit tests
    5. Integration tests
    6. Model tests
    7. View tests
    8. API tests
    9. Form tests
    10. Authentication tests
    11. Test fixtures
    12. Factories
    13. Mocking
    14. Test database
    15. Test coverage
  22. Django Signals

    1. Signals
    2. pre_save
    3. post_save
    4. pre_delete
    5. post_delete
    6. m2m_changed
    7. Custom signals
    8. Signal receivers
    9. Signal design problems
  23. Middleware

    1. Middleware architecture
    2. Request middleware
    3. Response middleware
    4. Authentication middleware
    5. Custom middleware
    6. Middleware ordering
    7. Exception handling middleware
  24. Caching

    1. Django caching
    2. Cache framework
    3. Per-view caching
    4. Template fragment caching
    5. Low-level cache API
    6. Redis
    7. Cache invalidation
    8. Cache keys
    9. Cache strategies
  25. Background Tasks

    1. Background jobs
    2. Celery
    3. Redis
    4. Task queues
    5. Periodic tasks
    6. Retries
    7. Task monitoring
    8. Idempotent tasks
    9. Async tasks
  26. Asynchronous Django

    1. ASGI
    2. WSGI
    3. Async views
    4. async def
    5. sync_to_async
    6. Django async ORM
    7. Async requests
    8. Async consumers
    9. Async limitations
  27. Django Channels

    1. WebSockets
    2. Channels
    3. Consumers
    4. Routing
    5. Channel layers
    6. Redis channel layer
    7. Real-time notifications
    8. Real-time applications
  28. Performance

    1. Query optimization
    2. select_related()
    3. prefetch_related()
    4. Database indexes
    5. Query profiling
    6. N+1 detection
    7. Caching
    8. Lazy QuerySets
    9. Pagination
    10. Connection management
    11. Django Debug Toolbar
    12. Application profiling
  29. Django Management

    1. Custom management commands
    2. Command arguments
    3. Command options
    4. Command output
    5. Command errors
    6. Scheduled commands
    7. Data import
    8. Data export
    9. Automation scripts
  30. Email

    1. Django email
    2. Email backends
    3. SMTP
    4. HTML email
    5. Email templates
    6. Transactional email
    7. Email verification
    8. Password reset emails
    9. Background email tasks
  31. Internationalization

    1. Translations
    2. gettext
    3. gettext_lazy
    4. Locale middleware
    5. Language switching
    6. Translation files
    7. Timezone handling
    8. Localization
  32. Advanced Django Architecture

    1. Fat models
    2. Service layer
    3. Repository pattern
    4. Selectors
    5. Managers
    6. Mixins
    7. Domain logic
    8. Application boundaries
    9. Dependency management
    10. Reusable applications
    11. Modular Django
  33. Production Configuration

    1. Production settings
    2. Environment variables
    3. Secrets
    4. DEBUG
    5. ALLOWED_HOSTS
    6. Database configuration
    7. Static files
    8. Media files
    9. Logging
    10. Error reporting
    11. Security settings
  34. Deployment

    1. Linux server
    2. Gunicorn
    3. Uvicorn
    4. Nginx
    5. ASGI deployment
    6. WSGI deployment
    7. PostgreSQL
    8. Redis
    9. Docker
    10. Docker Compose
    11. HTTPS
    12. SSL certificates
    13. Domain configuration
    14. DNS
    15. CI/CD
  35. Django with Docker

    1. Dockerfile
    2. Docker Compose
    3. Django container
    4. PostgreSQL container
    5. Redis container
    6. Environment variables
    7. Volumes
    8. Networks
    9. Static files
    10. Database migrations
    11. Production containers
  36. CI/CD

    1. Git
    2. GitHub
    3. GitHub Actions
    4. Automated testing
    5. Linting
    6. Formatting
    7. Build pipelines
    8. Deployment pipelines
    9. Database migrations
    10. Static files deployment
    11. Environment management
  37. Observability

    1. Django logging
    2. Structured logging
    3. Error tracking
    4. Sentry
    5. Application metrics
    6. Health checks
    7. Database monitoring
    8. Performance monitoring
    9. Request tracing
  38. Advanced ORM

    1. Advanced QuerySets
    2. Custom managers
    3. Custom QuerySet methods
    4. Expressions
    5. Subqueries
    6. OuterRef
    7. Exists
    8. Window functions
    9. Database functions
    10. Raw SQL
    11. Database-specific features
  39. Advanced Django REST Framework

    1. Custom serializers
    2. Nested serializers
    3. Serializer validation
    4. Custom fields
    5. Custom permissions
    6. Custom authentication
    7. Custom pagination
    8. Custom filters
    9. Custom throttling
    10. API versioning
    11. OpenAPI
    12. Swagger
    13. DRF Spectacular
  40. Django Security in Practice

    1. Authentication attacks
    2. Authorization vulnerabilities
    3. CSRF attacks
    4. XSS
    5. SQL injection
    6. IDOR
    7. Mass assignment
    8. File upload vulnerabilities
    9. Session attacks
    10. JWT security
    11. API security
    12. Rate limiting
    13. Security headers
  41. Professional Django Development

    1. Project structure
    2. Code organization
    3. Reusable components
    4. Configuration management
    5. Database design
    6. API design
    7. Testing strategy
    8. Error handling
    9. Logging
    10. Documentation
    11. Code review
    12. Git workflow
    13. Dependency management
    14. Technical debt
    15. Refactoring
  42. Real Django Projects

    1. CRUD application
    2. Authentication system
    3. REST API
    4. Admin dashboard
    5. Payment integration
    6. Background processing
    7. Real-time application
    8. File storage
    9. Email system
    10. Third-party API integration
    11. Dockerized application
    12. Production deployment
    13. CI/CD pipeline
    14. Monitoring