The Book of Zope

How to Build and Deliver Web Applications

Beehive

Publisher: No Starch, 2001, 403 pages

ISBN: 1-886411-57-3

Keywords: Python, Web Programming

Last modified: June 11, 2008, 10:30 a.m.

Zope, the leading Open Source Web application server, helps teams of developers create and manage dynamic, Web-based business applications like Intranets and portals. Zope makes it easy to add features such as site search, news, personalization, and e-commerce. The Book of Zope is a comprehensive introduction to Zope, covering installation; DTML programming; concepts such as users, roles, and permissions; ZClasses; ZCatalog; databases; programming Zope with Python; debugging; and the use of external data sources. Zope runs on Windows and almost all Unix-based platforms, and includes its own Web server, transactional object-oriented database, search engine, Web page templating system, Web development and management tool, and comprehensive extension support.

  • Chapter 1: Zope Fundamentals
    •  1.1 Web Applications
      • 1.1.1 The Advantages of Zope for Web Application Programmers
    • 1.2 Zope As a Web Application Server
      • 1.2.1 "Content-by-Role"
      • 1.2.2 SQL = Structured Query Language
      • 1.2.3 Python
    • 1.3 Zope as a Content Management Server
      • 1.3.1 Open Source Software
    • 1.4 Technical Requirements
      • 1.4.1 Hardware Requirements
    • 1.5 Installation
      • 1.5.1 Windows
      • 1.5.2 Windows NT
      • 1.5.3 Linux
    • Summary
  • Chapter 2: QuickStart
    • 2.1 Preparations
      • 2.1.1 Creating a User Account
    • 2.2 Zope's Interface: The Management Screen macs
      • 2.2.1 The Left Frame of the Management Screen
      • 2.2.2 The Right Frame of the Management Screen
    • 2.3 Zope Objects
      • 2.3.1 Zope and Object-Oriented Programming
      • 2.3.2 Creating a Folder
      • 2.3.3 Creating Files
      • 2.3.4 DTML Documents and Methods
      • 2.3.5 Creating a DTML Document
      • 2.3.6 Creating a DTML Method
    • 2.4 Managing Objects
      • 2.4.1 Changing an Object ID
      • 2.4.2 Changing an Object Title
      • 2.4.3 Copying Objects
      • 2.4.4 Deleting Objects
      • 2.4.5 Moving Objects
    • 2.5 Acquisition and Standard Objects
      • 2.5.1 Standard Objects
    • Summary
  • Chapter 3: Navigating Zope
    • 3.1 The Zope Tab Bar
      • 3.1.1 The Contents Tab
      • 3.1.2 The Edit Tab and Edit Screen
      • 3.1.3 The View Tab
      • 3.1.4 The Ownership Tab
      • 3.1.5 The History Tab
      • 3.1.6 The Properties Tab
      • 3.1.7 The Undo Tab
      • 3.1.8 The Find Tab
      • 3.1.9 The Import/Export Tab
    • 3.2 The Help Button
      • 3.2.1 Contents
      • 3.2.2 Search
    • 3.3 The Control Panel
      • 3.3.1 Shutdown
      • 3.3.2 Restart
      • 3.3.3 The Database Management Screen
      • 3.3.4 Managing your Zope Database with Pack
      • 3.3.5 Restoring Your Saved Data.fs File
      • 3.3.6 Copying Your Database to Another Zope Serve
      • 3.3.7 Version Management
      • 3.3.8 Product Management
      • 3.3.9 Debugging Information
    • Summary
  • Chapter 4: DTML
    • 4.1 Essentials
      • 4.1.1 First, Second, and Third Tiers
      • 4.1.2 Variables
      • 4.1.3 The DTML Namespace
    • 4.2 DTML Syntax
      • 4.2.1 Empty and Non-Empty Tags
      • 4.2.2 Old DTML Syntax
      • 4.2.3 Abbreviating Attributes
    • 4.3 Using DTML Tags, Variables, and Attributes
      • 4.3.1 The var Tag
      • 4.3.2 The Namespace Variable
      • 4.3.3 Client-Server Communication over the Web
      • 4.3.4 The call Tag
      • 4.3.5 The if Tag
      • 4.3.6 The elif Tag
      • 4.3.7 The unless Tag
      • 4.3.8 The with Tag
      • 4.3.9 The let Tag
      • 4.3.10 The in Tag
      • 4.3.11 The tree Tag
      • 4.3.12 The Sendmail Tag
      • 4.3.13 The MIME Tag and the boundary Tag
      • 4.3.14 The comment Tag
      • 4.3.15 The try and the except Tags
      • 4.3.16 The finally Tag
      • 4.3.17 The raise Tag
      • 4.3.18 The return Tag
    • Summary
  • Chapter 5: Working with Zope Versions
    • 5.1 Creating a Version
    • 5.2 Joining and Leaving a Version
    • 5.3 Working in a Version
      • 5.3.1 Updating Objects
      • 5.3.2 Saving and Discarding Changes Using the Control Panel
    • 5.4 Deleting a Version
    • 5.5 Working with Multiple Versions
    • 5.6 An Example
    • Summary
  • Chapter 6: Users, Roles, and Security
    • 6.1 Zope's Security Structure
      • 6.1.1 User Roles
      • 6.1.2 Zope Roles: Anonymous, Manager, Owner
      • 6.1.3 Assigning and Creating Roles
      • 6.1.4 Assigning Permissions Using Acquisition
      • 6.1.5 Ownership
    • 6.2 Managing Users
      • 6.2.1 Creating Users
      • 6.2.2 Modifying a User
      • 6.2.3 Creating New Roles
    • 6.3 Managing Users in DTML
      • 6.3.1 Creating Users in DTML
      • 6.3.2 Problems when Creating Users in DTML
      • 6.3.3 Changing Users in DTML
      • 6.3.4 Deleting Users in DTML
      • 6.3.5 User Folder Methods
    • Summary
  • Chapter 7: Local Roles and Permissions
    • 7.1 Local Roles
      • 7.1.1 Example
    • 7.2 Proxy Roles
    • 7.3 Permissions
      • 7.3.1 Permissions for Non-Folderish Objects
      • 7.3.2 Permissions for Folderish Objects
    • Summary
  • Chapter 8: Some Methods for the Role.py and User.py Modules
    • 8.1 Calling Methods
    • 8.2 Methods for the Module Role.py
      • 8.2.1 Methods for the User.py Module
    • 8.3 Example: Authentication
      • 8.3.1 DTML Method login_html
      • 8.3.2 DTML Document index_html
      • 8.3.3 The two views of index_html
      • 8.3.4 Assigning Permissions for login_html
    • Summary
  • Chapter 9: ZClasses
    • 9.1 Why Use ZClasses?
      • 9.1.1 Example ZClass Application: Bookstore
    • 9.2 Classes and Objects
      • 9.2.1 Creating a ZClass
      • 9.2.2 Example: CarClass
      • 9.2.3 Identification Numbers
      • 9.2.4 Property Sheets
    • 9.3 Creating a ZClass
      • 9.3.1 Creating a Product
      • 9.3.2 Adding a ZClass to the Product
      • 9.3.3 The Create Constructor Objects Checkbox
      • 9.3.4 Changing the ZClass Information
      • 9.3.5 Base Classes and Their Views
      • 9.3.6 Creating a Property Sheet and Properties
      • 9.3.7 Creating a Selection or Multiple Selection Property
      • 9.3.8 Establishing Views
      • 9.3.9 Creating Help Topics
      • 9.3.10 Editing Properties
    • Summary
  • Chapter 10: Working with the ZClass
    • 10.1 Modifying the Constructor Methods
      • 10.1.1 Modifying DTML Methods
      • 10.1.2 Creating Objects with ZClasses
      • 10.1.3 The Book Class Factory
    • 10.2 Running the Store
    • 10.3 Two Ways to Edit Your Book Objects
      • 10.3.1 Working in the Books Folder with the Management Screen
      • 10.3.2 Working with an Administration Interface
      • 10.3.3 Admin_html DTML Methods
    • 10.4 Selling Your Books
      • 10.4.1 Creating index_html
      • 10.4.2 Creating the DTML Methods for Ordering Books
      • 10.4.3 Sending the Order
    • 10.5 Ideas for Expanding Your Zope Product
    • Summary
  • Chapter 11: The ZCatalog
    • 11.1 Creating a ZCatalog
      • 11.1.1 Choosing a Vocabulary
      • 11.1.2 Globbing
    • 11.2 The ZCatalog Screens
      • 11.2.1 Contents Screen
      • 11.2.2 The Catalog Screen
      • 11.2.3 The Find Objects Screen
      • 11.2.4 Metadata Screen
      • 11.2.5 Indexes Screen
      • 11.2.6 Advanced Screen
    • 11.3 Z Search Interface
      • 11.3.1 The Search Page
      • 11.3.2 The Results Page
    • 11.4 ZCatalog Queries
      • 11.4.1 Querying ZCatalogs from a Form
      • 11.4.1 Querying ZCatalogs from a Form
      • 11.4.2 Catalog Brains
      • 11.4.3 Querying ZCatalogs Directly
    • 11.5 The Vocabulary
      • 11.5.1 The Vocabulary Screen
      • 11.5.2 Searching the Vocabulary
      • 11.5.3 Expanding the Vocabulary: The insert() and manage_insert() Methods
      • 11.5.4 ZCatalog with Special Characters
    • Summary
  • Chapter 12: Zope and MySQL
    • 12.1 ZODB or External Database?
    • 12.2 RDMBS
    • 12.3 The MySQL Database
      • 12.3.1 Starting MySQL Monitor
      • 12.3.2 Creating a Database with MySQL Monitor
      • 12.3.3 Creating the User Data Table with MySQL Monitor
      • 12.3.4 Installing the Database Adapter ZMySQLDA
      • 12.3.5 Establishing a Z MySQL Connection in Zope
      • 12.3.6 Testing SQL Queries to Your Database
    • 12.4 Filling Tables with User Data Using Zope
      • 12.4.1 The userAddForm_html Method
      • 12.4.2 The userAdd_html Method
      • 12.4.3 The userInsert_sql Method
      • 12.4.4 Testing Your SQL Methods
    • 12.5 Querying the Database Using Zope
      • 12.5.1 Creating SQL Methods for Searching
      • 12.5.2 The sqltest Tag
      • 12.5.3 The sqlvar Tag
    • 12.6 Creating a Search Interface
      • 12.6.1 Creating an Input Screen for the Search
    • Summary
  • Chapter 13: Programming Zope: Python in a Jiffy
    • 13.1 Data Types
      • 13.1.1 Numeric Types
      • 13.1.2 Sequential Types
      • 13.1.3 None
    • 13.2 Operators
    • 13.3 Variables and Assignments
    • 13.4 Indention
    • 13.5 Classes and Methods
      • 13.5.1 Example: Creating a Class
    • Summary
  • Chapter 14: Scripting Zope with Python
    • 14.1 Zope Python Scripts
      • 14.1.1 Creating Python Scripts
      • 14.1.2 Edit Management Screen
      • 14.1.3 Bindings Management Screen
      • 14.1.4 Test Management Screen
      • 14.1.5 Importing Modules into Python Scripts
      • 14.1.6 Calling Python Scripts from DTML
      • 14.1.7 Example: Creating a Zope Python Script
      • 14.1.8 Using the Script from DTML
    • 14.2 External Methods
      • 14.2.1 Creating External Methods
      • 14.2.2 Accessing Python Methods with DTML
      • 14.2.3 Example: Creating an External Method
      • 14.2.4 Creating an External Method Object in Zope
      • 14.2.5 Summary of Creating External Methods
    • 14.3 Using External Methods to Change Roles and Permissions
      • 14.3.1 Changing Permissions for Multiple Roles
      • 14.3.2 permission_settings()
      • 14.3.3 The Permission Method Step-by-Step
      • 14.3.4 Using the permissions.py Method
      • 14.3.5 The createUser() Method
    • Summary
  • Chapter 15: Zope Products
    • 15.1 A Tool for Creating Objects
    • 15.2 Constructing a Product
      • 15.2.1 Bootstrapping the Product
      • 15.2.2 Necessary Components
      • 15.2.2 User Structure
      • 15.2.3 Roles/Permissions Structure
    • 15.3 Product Construction at a Glance
      • 15.3.1 Major Components
      • 15.3.2 Support Files
      • 15.3.3 Putting It All Together
    • 15.4 Creating the Website Product
      • 15.4.1 Create the Product Directory
      • 15.4.2 The Main Module: Website.py
      • 15.4.3 Defining the Constructor Form
      • 15.4.4 The Constructor Method of the Main Module
      • 15.4.5 Writing The __init__.py File
    • Summary
  • Chapter 16: Debugging
    • 16.1 Errors When Starting the Zope Server
    • 16.2 Python and DTML Errors
      • 16.2.1 Binary Searching
      • 16.2.2 Defensive Coding
      • 16.2.3 Intermittent Errors
      • 16.2.4 Standard Python Error Messages
      • 16.2.5 DTML Error Messages
      • 16.2.6 Debug Mode
    • 16.3 Errors Specific to Zope
      • 16.3.1 Zope Error Messages
    • Summary
  • Chapter 17: External Data Access
    • 17.1 FTP
      • 17.1.1 Using Graphical FTP Clients
    • 17.2 WebDAV
      • 17.2.1 WebDAV for Linux and Unix
    • 17.3 XML-RPC
    • Summary
  • Appendix A: DTML and Built-in Attributes
    • A.1 The var Tag
      • A.1.1 Special Formats
    • A.2 The Namespace Variable
      • A.2.1 Modules
      • A.2.2 Client-Server Communication
  • Appendix B: The REQUEST Object
    • REQUEST
  • Appendix C: Source Code for the Website Product
    • C.1 Source Text for __init__.py for the Website Product
    • C.2 Source Text for Website.py for the Website Product
      • C.2.1 addWebsiteForm.dtml
    • C.3 The DTML Methods for the Website Product
      • C.3.1 WebsiteUsers_list.dtml
      • C.3.2 edit_WebsiteUser.dtml
      • C.3.3 index_html.dtml
      • C.3.4 login_html.dtml
      • C.3.5 new_WebsiteUser.dtml
      • C.3.6 products_html.dtml
      • C.3.7 standard_html_footer.dtml
      • C.3.8 standard_html_header.dtml
      • C.3.9 about_us_html.dtml
  • Appendix D: Some ZCatalog Module Methods
  • Appendix E: Glossary

Reviews

The Book of Zope

Reviewed by Roland Buresund

OK ***** (5 out of 10)

Last modified: June 11, 2008, 10:23 a.m.

Ok intro.

This is another introduction to Zope. Nothing to write home about, a bit dated, badly edited, but mostly correct.

In short, why not?

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required