How Grok compares to other web frameworks
EasyInstall and the Python Package Index (PyPI)
Grok and the Python environment
Putting in some JavaScript flourish
Display logic and application logic
Using containers and multiple models
A quick demonstration of automatic forms
Modifying individual form fields
The Catalog: An Object-Oriented Search Engine
Adding a simple search function to the application
A brief diversion: Structuring our application for search
Back to search: Using multiple indexes
Indexing different kinds of objects
Authentication and authorization
Principals, permissions, and roles
Setting up a custom security policy
Application Presentation and Page Layout
Understanding how the pieces fit together
Adding themes to our application
Adding Blob support to our application
Taking advantage of transactions
Using a relational database for authentication
Handling database transactions securely
Creating database-backed models and containers
When to use the ZODB versus a relational database
The Zope Component Architecture
Extending a Grok application from the outside
Grokkers, Martian, and Agile Configuration
Creating our own grokker for zope.sendmail configuration
Moving an application to production mode
Running the paster server in the background
Running Grok behind the Apache web server