web2py Application Development Cookbook
About the Authors and Reviewers
Installing web2py on Windows (from source code)
Setting up a production deployment on Ubuntu
Running web2py with Apache, mod_proxy, and mod_rewrite
Running web2py with Nginx and uWSGI
Running web2py on shared hosts using CGI
Running web2py on shared hosts with mod_proxy
Running web2py from a user-defined folder
Installing web2py as a service in Ubuntu
Running web2py with IIS as a proxy
Building Your First Application
Improving the scaffolding application
Building a simple contacts application
Converting an existing static site into a web2py application
Creating semi-static pages (flatpages)
Using cookies to set the language
Designing modular applications
Creating a model from a CSV file
Moving your data from one database to another
Creating a model from existing MySQL and PostgreSQL databases
Accessing your database from multiple applications
OR, LIKE, BELONGS, and more on Google App Engine
Replacing slow virtual fields with DB views
Adding confirmation on form submit
Embedding multiple forms in one page
Detecting and blocking concurrent updates
De-normalizing data temporarily
Uploading files using a LOADed component
Making image thumbnails from uploaded images
Creating a multi-table form with references
Creating a multi-table update form
Creating a select_or_add widget
Using an autocompletion plugin
Creating a drop-down date selector
Improving the built-in ajax function
Using a slider to represent a number
Improving data tables with WebGrid
Extending PluginWiki with an RSS widget
Consuming a web2py JSON service with jQuery
Making amf3 RPC calls from Flex using pyamf
Sending e-mails with Boto through Amazon Web Services (AWS)
Making GIS amps using mapscript
Google groups and Google code feeds reader
Authentication and Authorization
Using CAPTCHA on login failure
Using pyGravatar to get avatars for user profile pages
Authenticating with Facebook using OAuth 2.0
Making cleaner URLs with routes.py
Associating applications with domains
Removing application name and controllers from URLs
Replacing underscores with hyphens in URLs
Mapping favicons.ico and robots.txt
Using URLs to specify the language
Creating pdf labels, badges, and invoices
Using PDB and the embedded web2py debugger
Debugging with Eclipse and PyDev
Updating web2py using a shell script
Creating a simple page statistics plugin
Rounding corners without images or JavaScript
Checking if web2py is running using cron
Changing views for mobile browsers
Background processing with a database queue
How to effectively use template blocks