Django Academy
Build production web apps with Django, Python's batteries-included framework. From models and views to REST APIs and deployment.
Explore Course Tools
Supercharge your learning with AI-powered tools and features
How You'll Learn
30 Courses
Every course in the Django Academy learning path.
Meet Django: The Web Framework for Perfectionists
Understand what Django is, why it exists, and how its batteries-included design fits real web apps.
- What Django Is and What It Solves
- MTV: Models, Templates, and Views
- Batteries Included: ORM, Admin, Auth
- +1 more
Install Django and Start Your First Project
Set up a clean virtual environment and scaffold a working Django project from scratch.
- Virtual Environments with venv
- pip install django and Pinning Versions
- django-admin startproject Explained
- +1 more
Projects vs Apps: Structure Your Codebase
Create your first reusable app and wire it into the project the Django way.
- startapp and the App Folder Layout
- Register Apps in INSTALLED_APPS
- Touring settings.py
- +1 more
The Request and Response Cycle
Trace an HTTP request from the browser through Django to the response and back.
- How a Request Reaches Your View
- The HttpRequest Object
- Returning an HttpResponse
- +1 more
Your First View and URL
Write function-based views and map clean URLs to them with confidence.
- Writing a Function-Based View
- URL Patterns with path()
- Capturing URL Parameters
- +1 more
Templates: Render HTML with Data
Render dynamic HTML using the Django template language and template inheritance.
- render() and the Template Context
- Template Tags and Filters
- Template Inheritance with extends and block
- +1 more
Explore Django with the Shell
Use the interactive shell to experiment with models, queries, and Python live.
- Launching python manage.py shell
- Importing and Inspecting Models
- Creating and Saving Objects Live
- +1 more
Models and Your First Database Table
Define models that map to database tables and pick the right field types.
- Defining a Model Class
- Choosing Field Types
- Field Options: null, blank, default
- +1 more
Migrations: Evolve Your Schema Safely
Create, apply, and reason about migrations as your models change over time.
- makemigrations vs migrate
- Reading a Migration File
- Changing a Model and Re-migrating
- +1 more
The Django Admin Site
Turn on the admin and manage your data through a polished generated interface.
- createsuperuser and Logging In
- Registering Models with admin.site
- Customizing ModelAdmin
- +1 more
QuerySets: Read Data from the Database
Fetch and filter records efficiently using the QuerySet API.
- all(), get(), and filter()
- Field Lookups and exclude()
- order_by, Slicing, and Lazy Evaluation
- +1 more
Forms: Collect and Validate Input
Build Django forms that render fields and validate user input cleanly.
- Defining a forms.Form
- is_valid and cleaned_data
- Rendering Forms in Templates
- +1 more
Class-Based Views Fundamentals
Replace repetitive function views with reusable class-based views.
- From Function Views to View Classes
- TemplateView and get_context_data
- Handling get and post Methods
- +1 more
Generic Display and Editing Views
Use Django's generic CBVs to build CRUD pages with minimal code.
- ListView and DetailView
- CreateView and UpdateView
- DeleteView and success_url
- +1 more
ModelForms: Forms from Your Models
Generate validated, model-backed forms that save records automatically.
- Declaring a ModelForm and Meta.fields
- form.save() and commit=False
- Custom Validation with clean methods
- +1 more
ORM Relationships: Connect Your Models
Model real-world relationships with foreign keys, many-to-many, and one-to-one.
- ForeignKey and on_delete
- ManyToManyField and Through Models
- OneToOneField for Profiles
- +1 more
Authentication and Users
Add login, logout, and registration backed by Django's auth system.
- The User Model and authenticate()
- login, logout, and Auth Views
- Registration with UserCreationForm
- +1 more
Sessions, Messages, and Cookies
Persist per-user state and surface one-time feedback across requests.
- The Session Framework
- Reading and Writing request.session
- The Messages Framework
- +1 more
Static and Media Files
Serve CSS, JS, and user uploads correctly in development and production.
- STATICFILES and the static Tag
- collectstatic for Production
- MEDIA_ROOT and File Uploads
- +1 more
Pagination and Testing Basics
Split long lists across pages and write your first automated Django tests.
- The Paginator Class
- Page Controls in ListView
- Writing TestCase and assertions
- +1 more
Django REST Framework: First API
Expose your models as a JSON API with Django REST Framework.
- Installing and Configuring DRF
- Serializers: Model to JSON
- APIView and Function @api_view
- +1 more
DRF ViewSets, Routers, and Auth
Build a full CRUD API fast with ViewSets and secure it with token auth.
- ModelViewSet and Routers
- Permissions and Throttling
- Token and JWT Authentication
- +1 more
Advanced ORM: Aggregations and Expressions
Compute statistics and build database-side logic with annotations and F/Q objects.
- aggregate vs annotate
- F Expressions for Atomic Updates
- Q Objects for Complex Filters
- +1 more
Kill the N+1: Query Optimization
Diagnose and eliminate the N+1 problem to make queries fast.
- Spotting the N+1 Problem
- select_related for Foreign Keys
- prefetch_related for M2M
- +1 more
Signals and Custom Middleware
React to model events and intercept every request with custom middleware.
- post_save and pre_delete Signals
- Connecting Receivers Properly
- Writing Custom Middleware
- +1 more
Caching for Speed
Cache views, fragments, and queries to cut response times dramatically.
- Cache Backends and Redis
- Per-View and Per-Site Caching
- Template Fragment Caching
- +1 more
Celery and Background Tasks
Offload slow work to background workers with Celery and a message broker.
- Why You Need Background Tasks
- Setting Up Celery with a Broker
- Writing and Calling @shared_task
- +1 more
Security Hardening in Production
Lock down a Django site against the most common web attacks.
- DEBUG, SECRET_KEY, and ALLOWED_HOSTS
- HTTPS, HSTS, and Secure Cookies
- XSS, CSRF, and SQL Injection Defenses
- +1 more
Deploy with Gunicorn, Nginx, and WhiteNoise
Take a Django app to a real server with a production WSGI stack.
- Gunicorn as the WSGI Server
- Nginx as a Reverse Proxy
- WhiteNoise for Static Files
- +1 more
Dockerize Django for Anywhere
Package Django, Postgres, and Redis into reproducible containers.
- Writing a Django Dockerfile
- docker-compose with Postgres and Redis
- Entrypoints, Migrations, and collectstatic
- +1 more
Frequently Asked Questions
Is the Django Academy course free?
Yes. You can start the Django Academy course for free and complete its interactive lessons at no cost. An optional PRO subscription unlocks advanced AI tools and a shareable certificate.
Do I need prior experience to learn PYTHON?
No. The course begins with the fundamentals and gradually moves to more advanced topics, so you can start even with no prior PYTHON experience.
How will I learn PYTHON on CoddyKit?
You learn by doing. Short interactive lessons pair a clear explanation with a hands-on coding exercise that runs in real time, and a 24/7 AI tutor gives personalized help whenever you get stuck.
Do I get a certificate for completing Django Academy?
Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the Django Academy course.
Can I learn PYTHON on my phone?
Yes. CoddyKit is available on the web and as native iOS and Android apps, so you can learn PYTHON on any device and your progress syncs across them.
Start Django Academy Now
Join thousands of learners mastering programming with AI-powered lessons.