Advanced Django Training | Get Deeper Understanding of Django Framework

Advanced Django Course Description

Django is one of the most popular Python-based Web Application frameworks. It forms the backbone of some major websites and is known for its relative ease of use and the speed at which you can develop and deploy Python web applications and containers.

The training is primarily targeted at people who have a good understanding of the Django framework and are in the process of building and deploying real-world, web-scale applications in Django. The training sessions will look at how Django applications can be built in a distributed team and deployed to scale.

Advanced Django Course Learning Outcomes

  • Understand Django Architecture and its take on MVC (Models, Views & Templates)
  • Build and deploy robust Django web apps
  • Integrate with RESTful web services
  • Unit Testing and Debugging Django apps

Advanced Django Training - Suggested Audience

This training is aimed at professionals who have foundational understanding of Python Django programming skills. Suggested attendees based on our past programs are;
  • Aspiring Programmers
  • Python operators
  • Web Designers
  • Web Developers
  • Software Developers

Advanced Django Training Duration

  • Open-House F2F (Public): /4/5 days
  • In-House F2F (Private): 4/5 days, for commercials please send us an email with group size to

Advanced Django Training - Prerequisites

  • Good knowledge of Python, OOP in Python
  • Knowledge of the Linux environment
  • Hands-on experience with Django environment, models, template engine and views
  • Knowledge of building scalable web-scale applications and Understanding of MVC/MTV architectures would be highly desirable but not mandatory.
  • You can get Django Foundation training here Django Essentials

This Advanced Django course outline includes:

1. Dive into Django
  • Creating a project
  • Understanding the Django project structure
  • A bit of Django internals — overview of the Django source 

2. Deploying Django
  • Packaging Django Applications
  • Introduction to python packaging
  • pip and distribute
  • pip requirements
  • Scaling Django Applications
  • Separating out the DB server
  • Separating out the media server
  • Load Balancing and Redundancy
  • Django setup via virtualenv and virtualenvwrapper

3. Working with Models and Databases (Concept)
  • Datastore design considerations
  • Relational v/s NoSQL stores
  • Understanding database abstraction layers (DAL)
  • Entities, Relationships
  • Tables, Fields, Keys, Indexes
  • Object Relational Mapping (ORM) and ORM issues 

4. Django Model Basics
  • Creating models
  • Fields, Field types, and Field Options
  • Handling relationships - OneToOne, OneToMany, ManyToOne
  • Object CRUD
  • Creating objects
  • Retrieving objects
  • Filters when retrieving objects
  • Comparing objects
  • Updating objects
  • Deleting objects 

5. Advanced Model Handling
  • Model Inheritance
  • Aggregation
  • Joins and Aggregates
  • filter() and exclude()
  • order_by()
  • values()
  • Managers
  • Working with NoSQL stores
  • Performing raw SQL queries
  • Transactions
  • Working with multiple databases 

6. Handling Migrations
  • Issues with db migration
  • South — the de-facto Django migration utility
  • Migrating forward(up)
  • Migrating back (down)
  • Resolving conflicts during migration 

7. Working with Controllers, Views, and Templates (Concept)
  • Data formats
  • XML and JSON
  • MVC v/s MVP v/s MTV
  • Thin clients v/s Thick clients
  • Serializing and Deserializing of objects
  • Conversion between Python objects and Javascript objects
  • Need for templates
  • Anti-patterns in MVC design 

8. Forms Framework
  • Widget, Field, Form and Form Media
  • Tying form objects with Views
  • Custom Validation Rules
  • Customizing the look and feel
  • Creating forms from models 

9. Template Engine
  • Using the template system
  • Template, Context, Variables, Template Tags and Filters
  • HTML escaping
  • Using templates in views
  • Template Inheritance
  • Template Loaders

10. Extending the Template System
  • Creating a template library
  • Writing custom template filters
  • Writing custom template tags
  • Writing custom template loaders 

11. Middleware
  • Session handling
  • Enabling sessions
  • Configuring session engine
  • Using sessions in views 

12. Request and Response Objects
  • HttpRequest object
  • UploadedFile object
  • QueryDict object
  • HttpResponse object

13. Admin site
  • Activating the admin site
  • Customizing the admin form
  • Adding related objects

14. Authentication
  • Authentication Overview: Users, Permissions, and Groups
  • User Management
  • How passwords are stored
  • Using authentication in web requests — login, logout and password changes

15. Logging
  • Loggers, Handlers, Filters and Formatters
  • Using logging in code
  • Configuring logging via
  • Installing and testing Sentry via Raven
  • Using Sentry in Django Applications
  • Configuring Sentry

16. Caching
  • Setting up the cache
  • Various caching backends available
  • Cache configuration
  • Per-Site Cache
  • Per-View Cache
  • Caching Template Fragments
  • Caching specific objects using low-level Cache API
  • Handling issues with upstream caches
  • Using Vary Headers

17. Search Plugins
  • Haystack
  • Installation of Haystack and other dependencies
  • Setting up the fields to be searched
  • Setting up the search form
  • Building indexes
  • Updating indexes
  • Sphinx
  • Setting up Sphinx search
  • Testing the setup
  • Using Sphinx via Django
  • Comparison of the Haystack based backends and Sphinx backend

18. Media Storage
  • Managing media files
  • Default file storage
  • Custom storage systems
  • Django storages plugin

19. Handling models RESTfully
  • REST principles and HTTP
  • Introduction to Tastypie plugin
  • Resources and ModelResources — the “R†of REST
  • Working with Django Models
  • Working with non-models
  • Working with differences from backend models — The hydrate/dehydrate cycle

20. Testing
  • Unit testing using the builtin django test framework
  • Use of fixtures
  • Testing models
  • Testing views
  • Advantages of nose
  • Use of django-nose for testing

21. Other Important Plugins
  • Asynchronous task processing — the need
  • Asynchronous task processing in Django using Celery, Kombu and a MQ backend
  • Using django-extensions
  • Using the contrib packages

22. Client Side
  • Introductory Javascript
  • Working with the Browser DOM
  • Handling events
  • Asynchronous requests and XMLHTTP
  • Frontend performance considerations
  • Using AJAX in Django - JSONResponse instead of HTTPResponse 
Keny White


Keny White is Professor of the Department of Computer Science at Boston University, where he has been since 2004. He also currently serves as Chief Scientist of Guavus, Inc. During 2003-2004 he was a Visiting Associate Professor at the Laboratoire d'Infomatique de Paris VI (LIP6). He received a B.S. from Cornell University in 1992, and an M.S. from the State University of New York at Buffalo.


After working as a software developer and contractor for over 8 years for a whole bunch of companies including ABX, Proit, SACC and AT&T in the US, He decided to work full-time as a private software trainer. He received his Ph.D. in Computer Science from the University of Rochester in 2001. "What I teach varies from beginner to advanced and from what I have seen, anybody can learn and grow from my courses".


Average Rating

1 rating

Detailed Rating

5 stars
4 stars
3 stars
2 stars
1 star

    This is great

    I really love the course editor in LearnPress. It is never easier when creating courses, lessons, quizzes with this one. It's the most useful LMS WordPress plugin I have ever used. Thank a lot! Testing quiz is funny, I like the sorting choice question type most.