Course outline for web2py

Pre-requisites for learning web2py

  • Participants must have a basic knowledge of Python
  • Knowledge of Linux environment

Lab Setup

  • Hardware Configuration
    • Participants must have access to a system with the following hardware configuration:
    • 2GB of free RAM, 20GB of free disk space and full network connectivity
  • Software Configuration
    • Ubuntu 20.04/22.04 Desktop Edition (sudo/root access required)
    • Firefox and Chrome browsers

Duration

  • 2-3 days

Training Mode

Online training for web2py

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 web2py

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 web2py

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 web2py

  • Why web2py?
  • Use of MVC in web2py

Installing web2py

  • Installing Python
  • Installing a database
  • Installing web2py
  • Verifying the setup
  • Overview of development v/s production setup

Projects

  • Creating a project
  • Understanding the web2py 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

web2py database abstraction

  • Database abstraction layer (DAL) constructor
  • Model-less applications
  • Table constructor
  • Field constructor
  • Querying database
  • Handling relationships - OneToOne, OneToMany, ManyToOne
  • Object CRUD
  • Creating objects
  • Retrieving objects
  • Exporting and importing data

Admin site

  • Activating the admin site
  • Starting the development server
  • Entering the admin site

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

  • Writing views
  • URLs – absolute & digitally signed
  • Helpers

Running tasks using web2py

  • Cron
  • web2py scheduler
  • Tasks and task lifecycle

Error pages

  • Raising 404
  • Writing a 404 (page not found) view

Forms and validators

  • Writing a simple form
  • SQLFORM
  • Validators
  • Widget

Emails and SMS

  • Configuring email for Google App Engine
  • Text and HTML emails
  • Sending SMS
  • Using template system to generate messages