Course outline for Basic Django

TechnologyBasic DjangoLevelPrerequisites listed

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

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

How we train

Online training for Basic Django

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

All sessions are 100% hands-on. Labs and activities are derived from real-world work our engineers deliver.

Classroom training

Available for corporate teams in:

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

Note: Classroom training is for corporate clients only.

Self-paced hands-on sessions are delivered via VirtualCoach.

Detailed Course Outline

Hands-on

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