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