Course outline for Basic Django

Basic Django Course Objectives

This 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.

Pre-requisites for learning Basic Django

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

Training Mode

Online training for Basic Django

We provide:

  • Instructor led live training
  • Self-paced learning with access to expert coaches
  • 24x7 access to cloud labs with end to end working examples

All jnaapti sessions are 100% hands-on. All our instructors are engineers by heart. Activities are derived from real-life problems faced by our expert faculty. Self-paced hands-on sessions are delivered via Virtual Coach.

Classroom training for Basic Django

Classroom sessions are conducted in client locations in:

  • Bengaluru
  • Chennai
  • Hyderabad
  • Mumbai
  • Delhi/Gurgaon/NCR

Note: Classroom training is for corporate clients only

Detailed Course Outline for Basic Django

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