Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Review Afterwards
Pending
Pending
Pending
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Completed
Pending
Pending
Pending
Pending
Pending
Completed
Completed
Completed
Completed
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
Pending
This roadmap will be frequently updated
COMPLETED: 57/2
Python Requirements for Dja
1. Basic Python
Topics
1.1 Syntax and
Variables and data types (int, float, string, bool)
Basic operations (arithmetic, comparison, logical)
Strings (concatenation, slicing, formatting)
Python data structures (lists, dictionaries, sets, tuples)
Control flow (if-else, for, while loops)
1.2 Control St
Conditional statements (if, elif, else)
Loops (for, while)
Comprehensions (list, dict, set comprehensions)
1.3 List
Creating and modifying lists
List comprehensions
Built-in list methods (`append()`, `extend()`, `pop()`, etc.)
1.4 Diction
Creating and accessing dictionaries
Dictionary comprehensions
Built-in dictionary methods (`keys()`, `values()`, `items()`, etc.)
1.5 Set
Creating and using sets
Set operations (union, intersection, difference)
Built-in set methods (`add()`, `remove()`, `discard()`, etc.)
1.6 Tupl
Creating and accessing tuple elements
Immutable nature of tuples
1.7 Functions an
Defining and calling functions
Function arguments and return values
Lambda functions
Importing modules and using built-in libraries
1.8 Object-Oriented Pro
Classes and objects
Attributes and methods
Inheritance and polymorphism
Encapsulation and private attributes
2. Advanced Pyth
2.1 File Han
Opening, reading, writing, and closing files
Working with file paths
Handling different file formats (CSV, JSON)
2.2 Error and Excep
Try-except blocks
Raising exceptions
Custom exception classes
2.3 Decorators and
Writing and applying decorators
Understanding and creating generator functions
Using `yield` for generators
2.4 Context M
Using `with` statements
Creating custom context managers with `__enter__` and `__exit__`
2.5 Multithreading and
Basics of threading and multiprocessing
Using the `threading` and `multiprocessing` modules
Synchronization techniques (locks, queues)
2.6 Networkin
Understanding sockets
Basic client-server communication
Using the `socket` module
Web Develo
3. Basic Kno
3.1 HTML/
HTML tags, elements, and attributes
Basic CSS styling (selectors, properties, and values)
Layout techniques (flexbox, grid)
Responsive design principles (media queries, fluid grids)
3.2 Javasc
Basic syntax and DOM manipulation
Event handling
AJAX for asynchronous requests
ES6+ features (arrow functions, classes, modules)
3.3 HTTP Pr
Request methods (GET, POST, PUT, DELETE)
Status codes and their meanings
Headers and body of requests and responses
Cookies and sessions
RESTful principles
Databa
4. Basic Understandi
4.1 SQ
Basic CRUD operations (SELECT, INSERT, UPDATE, DELETE)
Joins (INNER, LEFT, RIGHT)
Indexes and constraints
Transactions
Advanced queries (subqueries, views)
4.2 Database Manageme
Setting up and using SQLite
Introduction to PostgreSQL and MySQL
Basic database administration (backup, restore)
Database normalization
Learning D
1. Introduction
1.1 Installa
Installing Django using `pip`
Setting up a virtual environment
1.2 Project St
Understanding `manage.py`, settings, URLs, and WSGI
Project layout (apps, models, views, templates)
Configuring settings for different environments (development, production)
1.3 Creating a
Using `django-admin startproject <projectname>`
Configuring `settings.py` (database, static files, installed apps)
Understanding `urls.py` and URL routing
1.4 Creating and Ru
Running the development server
Basic project configuration (settings, installed apps)
2. Django M
2.1 Introduction
Understanding models and ORM
Django's `models.Model` class
2.2 Defining
Field types (CharField, IntegerField, etc.)
Field options (default, null, blank, choices)
Relationships (ForeignKey, OneToOneField, ManyToManyField)
Meta options for models
Custom model methods and properties
2.3 Migrat
Creating and running migrations
Understanding migration files
Rolling back migrations
Managing migrations with third-party tools like South
Custom migration operations
2.4 ORM
Basic queries (`all()`, `filter()`, `get()`)
Aggregations (`annotate()`, `aggregate()`)
Query optimization techniques
Raw SQL queries
Advanced querying techniques (select_related, prefetch_related)
Using Django Debug Toolbar to optimize queries
3. Django
3.1 Function-Based
Writing simple function-based views
Handling requests and responses
Using shortcuts (`render`, `redirect`, `get_object_or_404`)
URL routing and views
Working with context data in views
3.2 Class-Based V
Introduction to CBVs
Writing views using Django's built-in CBVs (`TemplateView`, `DetailView`, `ListView`,
Overriding CBV methods (`get()`, `post()`, `get_context_data()`)
Advanced CBVs (FormView, CreateView, UpdateView, DeleteView)
3.3 Mixins and Ge
Understanding and using mixins
Customizing generic views with mixins
Creating custom mixins
Understanding `SingleObjectMixin`, `MultipleObjectMixin`, and their use cases
4. Django Te
4.1 Template L
Basic syntax (variables, tags)
Common filters and tags
Custom template tags and filters
Template debugging techniques
Template best practices (avoiding redundancy, DRY principle)
4.2 Template In
Extending templates
Including templates
Template context processors
Advanced template techniques (blocks, super, context variables)
Using `blocktrans` for translations
4.3 Static
Setting up static files
Using the `static` template tag
Managing static files with `collectstatic`
Working with third-party static files (Bootstrap, jQuery)
Versioning and caching static files
5. Django F
5.1 Form Cl
Creating and handling forms
Form fields and widgets
Validating forms
Form rendering and customization
Handling file uploads with forms
Custom form widgets
5.2 Model F
Creating forms from models
Customizing model forms
Inline formsets
Validating model forms
Advanced formset techniques
5.3 Form Val
Built-in validation methods
Writing custom validation logic
Form errors and error messages
Handling form submissions with AJAX
Using Django Crispy Forms for enhanced form rendering
6. Django A
6.1 Admin In
Setting up the admin site
Registering models in the admin
6.2 Admin M
Customizing model admin (`list_display`, `search_fields`)
Using inlines for related models
Advanced model admin customization (fieldsets, readonly_fields)
Admin list filters and custom filters
Using `list_select_related` for performance
6.3 Admin Cust
Custom admin actions
Overriding admin templates
Adding JavaScript and CSS to the admin
Custom admin views
Extending the admin dashboard
7. Advanced Djan
7.1 Middlew
Creating custom middlewares
Understanding middleware order and processing
Built-in middlewares (authentication, session, CSRF)
Third-party middlewares and their use cases
Middleware best practices and performance considerations
7.2 Sign
Connecting signals to functions
Built-in signals (`pre_save`, `post_save`, etc.)
Creating custom signals
Signal dispatchers and receivers
Signal best practices and pitfalls
7.3 Custom Us
Setting up a custom user model
Extending the default user model
Handling authentication with a custom user model
Custom user managers and backends
Custom user forms and views
Migrating to a custom user model
7.4 Cach
Using Django’s caching framework
Cache backends (in-memory, file-based, database, etc.)
Template fragment caching
Advanced caching techniques (cache invalidation, cache keys)
Using Redis or Memcached for caching
7.5 Testi
Writing unit tests for views, models, and forms
Using Django’s test client
Writing integration and functional tests
Test coverage and continuous integration
Mocking and patching in tests
Performance testing
Using `pytest` with Django for enhanced testing capabilities
Creating test data with factories (`factory_boy`)
7.6 Internationalization
Setting up translations
Translating templates and models
Handling different time zones and formats
Using `gettext` and `ugettext` functions
Translating Django admin
7.7 Security Bes
Enforcing HTTPS
Setting up CORS
Protecting against CSRF, XSS, SQL injection
Implementing security headers
Regular security audits and penetration testing
Using `django-axes` for brute-force protection
Managing secrets securely
Rate limiting and throttling strategies
Data encryption (at rest and in transit)
8. Django REST Fra
8.1 Introductio
Setting up DRF
Basic concepts (serializers, views, routers)
Differences between DRF and Django's built-in views
8.2 Seriali
Creating serializers
Serializer fields and validation
Nested serializers
Hyperlinked serializers
Model serializers
Custom serializer fields and methods
Serializer relations (primary key, string, hyperlinked)
Advanced validation techniques
8.3 ViewSets an
Using viewsets for CRUD operations
Setting up routers
Customizing viewsets
Action decorators and custom actions
Advanced viewsets and routers
Viewset mixins
8.4 Authentication a
Implementing authentication (token, session, JWT)
Custom permissions
Advanced authentication techniques (OAuth2, OpenID Connect)
Role-based access control
Third-party authentication packages (django-allauth, django-rest-auth)
8.5 Pagination an
Setting up pagination
Implementing throttling
Custom pagination classes
Rate limiting strategies
Using `django-rest-framework-extensions` for advanced pagination
8.6 Versio
API versioning strategies
Setting up versioning in DRF
Handling backward compatibility
Using URL path and query parameter versioning
8.7 Advanced DR
View throttling
Content negotiation
Using `djangorestframework-simplejwt` for JWT authentication
API documentation with `drf-yasg` or `drf-spectacular`
API testing with `drf-test-generator`
Implementing hypermedia APIs with DRF
9. Deployment an
9.1 Environme
Using `venv` for virtual environments
Managing dependencies with `pip` and `pipenv`
Using Docker for containerization
Setting up development and production environments
Managing multiple settings files (`django-environ`)
Using `.env` files for configuration
9.2 Configuration M
Using environment variables
Managing settings for different environments (development, testing, production)
Secrets management
Configuration management tools (Ansible, Chef, Puppet)
Using `django-configurations` for organized settings
9.3 Static and M
Setting up static and media file serving
Using AWS S3 or similar services for static/media files
Managing static files in production
Handling large file uploads
Optimizing and compressing static files
9.4 Web Se
Setting up Gunicorn or uWSGI
Configuring Nginx as a reverse proxy
Load balancing and scaling with multiple web servers
Using Celery for background tasks and asynchronous processing
Setting up HTTPS with Let’s Encrypt
Monitoring and logging with Sentry or similar tools
Automated deployments with CI/CD (GitHub Actions, GitLab CI, Jenkins)
9.5 Database Ma
Setting up PostgreSQL or MySQL in production
Managing database migrations in production
Database performance optimization (indexing, query optimization)
Database backup and disaster recovery
Database replication and sharding
Using `django-dbbackup` for automated backups
9.6 Performanc
Profiling and optimizing Django applications
Using caching strategies for performance
Scaling applications horizontally and vertically
Optimizing query performance
Load testing with tools like Locust or Apache JMeter
Using Django Channels for real-time features
updated, so make sure to keep checking it.
D: 57/265 (21.51%)
for Django (Must know topics)
Python Knowledge
Links for revision
tax and Semantics
Done
Done
Done
Done
Done
ontrol Structures
Done
Done
Done
1.3 Lists
Done
Done
Done
4 Dictionaries
Done
Done
Done
1.5 Sets
Done
Done
Done
1.6 Tuples
Done
Done
ctions and Modules
Done
Done
Done
Done
ented Programming (OOP)
Done
Done
Done
Done
ed Python Concepts
File Handling
Done
Done
Done
nd Exception Handling
Done
Done
Done
ators and Generators
Done
Done
Done
ontext Managers
Done
Done
ding and Multiprocessing
Done
Done
Done
etworking Basics
Development
sic Knowledge
.1 HTML/CSS
.2 Javascript
HTTP Protocol
Database
rstanding of Databases
4.1 SQL
anagement Systems (DBMS)
rning Django
duction to Django
1 Installation
roject Structure
reating a Project
g and Running a Server
jango Models
oduction to Models
Defining Models
3 Migrations
2.4 ORM
Django Views
n-Based Views (FBVs)
-Based Views (CBVs)
istView`, etc.)
s and Generic Views
ngo Templates
mplate Language
mplate Inheritance
3 Static Files
Django Forms
Form Classes
2 Model Forms
Form Validation
jango Admin
Admin Interface
Admin Models
min Customization
ed Django Concepts
1 Middlewares
7.2 Signals
ustom User Model
7.4 Caching
7.5 Testing
alization and Localization
urity Best Practices
EST Framework (DRF)
troduction to DRF
.2 Serializers
wSets and Routers
cation and Permissions
ation and Throttling
6 Versioning
anced DRF Features
ment and Production
vironment Setup
uration Management
tic and Media Files
4 Web Servers
abase Management
rformance Tuning