Course Outline


Who should attend

The training is targeted at people who are in the process of building and deploying web applications in Django. The training sessions will look at how Django applications can be built from the ground-up and some philosophies that the framework is based on. Take the Django course online at your convenience.

Pre-requisites

  • Good knowledge of Python, OOP in Python
  • Knowledge of the Linux environment

Course Outline for Basic Django Training

Introduction to Web Application Programming (Concept)
  • Static v/s Dynamic applications
  • Client/server computing
  • TCP/IP protocol
  • Application layer protocol — HTTP
  • HTTP Request and Response
  • Asynchronous requests with XMLHttp
  • 3 tier architectures
  • Client side applications and frameworks — HTML/JS/CSS
  • Server side languages and frameworks
  • Overview of Model/View/Controller (MVC )
  • Tooling
  • Using tooling to inspect page content (HTML/JS/CSS)
  • Using tooling to inspect request and response headers
  • Using tooling to inspect traffic flow
  • Analysis of a few popular client/server applications
  • Examples of MVC frameworks
Introduction to Django
  • Why Django?
  • Use of MVC in Django
Installing Django
  • Installing Python
  • Installing a database
  • Installing Django
  • Verifying the setup
  • Overview of development v/s production setup
Projects
  • Creating a project
  • Understanding the Django project structure
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
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
Admin site
  • Activating the admin site
  • Starting the development server
  • Entering the admin site
  • Customizing the admin form
  • Adding related objects
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
URLs and Views
  • URL Dispatcher
  • Writing views
  • View Decorators
  • File Uploads
Error pages
  • Raising 404
  • Writing a 404 (page not found) view
  • Writing a 500 (server error) view
Forms
  • Writing a simple form
  • Widget
  • Field
  • Form
  • Form Media
Template System
  • Using the template system
  • Templates
  • Variables
  • Filters
  • Tags
  • Comments
  • Template inheritance
  • HTML escaping
  • Custom tag and filter libraries
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
Middleware
  • Session handling
  • Enabling sessions
  • Configuring session engine
  • Using sessions in views
Request and Response Objects
  • HttpRequest object
  • UploadedFile object
  • QueryDict object
  • HttpResponse object

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.