The Zope Web Framework
Table of Contents
BlueBream is a web framework written in Python programming language. BlueBream is a free/open source software, owned by the Zope Foundation, licensed under the Zope Public License (BSD like, GPL compatible license). BlueBream was previously known as Zope 3.
A few of the features which distinguish BlueBream among Python web frameworks.
- BlueBream is built on top of the Zope Tool Kit (ZTK), a distillation of decades of experience in meeting demanding requirements for stable, scalable software.
- BlueBream leverages the power of Buildout a build system written in Python.
- BlueBream uses the ZODB transactional object database, providing extremely powerful and easy to use persistence.
- BlueBream uses ZCML, an XML based configuration language for registering components, providing limitless flexibility. If you don’t need the power of ZCML and the complexity it adds, try Grok, which adds a layer replacing the declarative configuration of ZCML with conventions and declarations in standard Python.
- BlueBream features the Zope Component Architecture (ZCA) which implements Separation of concerns to create highly cohesive reusable components (zope.component).
- BlueBream supports WSGI using Paste, PasteScript, and PasteDeploy.
- BlueBream includes a number of compenents which provide well tested
implementation of common requirements. A few are of these are:
- zope.publisher publishes Python objects on the web, it is geared towards WSGI compatibility
- zope.security provides a generic mechanism supporting pluggable security policies
- zope.testing and zope.testbrowser offer unit and functional testing frameworks
- zope.pagetemplate is an XHTML-compliant templating language
- zope.schema and zope.formlib provide a schema engine and automatic form generation machinery
$ easy_install bluebream
Internet access to PyPI is required to perform installation of BlueBream.
Once BlueBream is installed, run paster command to create the project directory. The create sub-command provided by paster will show a wizard to create the project directory.
$ paster create -t bluebream
You need to provide the project name and namespace package name. The project name will be used as the egg name.
The project name can be give given as a command line argument:
$ paster create -t bluebream sampleproject
The name of namespace package also can be given from the command line:
$ paster create -t bluebream sampleproject namespace_package=mycompany
The other variables which can be given from command line are:
- interpreter – Name of custom Python interpreter
- version: Version (like 0.1)
- description: One-line description of the package
- long_description: Multi-line description (in reST)
- keywords: Space-separated keywords/tags
- author: Author name
- author_email: Author email
- url: URL of homepage
- license_name: License name
- zip_safe: True, if the package can be distributed as a .zip file othewise False.
If you are in a hurry, you can simply press Enter/Return key and change the values later. But it would be a good idea, if you provide good name for your project.
The generated package is bundled with Buildout configuration and the Buildout bootstrap script (bootstrap.py). First you need to bootstrap the buildout itself:
$ cd sampleproject $ python2.6 bootstrap.py
The bootstrap script will install zc.buildout and setuptools package. Also, it will create the basic directory structure. Next step is building the application. To build the application, run the buildout:
The buildout script will download all dependencies and setup the environment to run your application.
To run test cases:
To get the debug shell:
$ ./bin/paster shell debug.ini
To run the server:
$ ./bin/paster serve debug.ini
Now you can access the main page from: http://localhost:8080
You can continue reading about BlueBream from the documentation site.
The source code is managed at Zope reposistory. You can checkout the trunk code like this (Anonymous access):
svn co svn://svn.zope.org/repos/main/bluebream/trunk bluebream
The bugs and issues are tracked at launchpad.
IRC Channel: #bluebream at irc.freenode.net
- Use released package distribution versions: http://download.zope.org/bluebream/bluebream-1.0a1.cfg
- Include new packages to site.zcml template:
- zope.app.publisher.xmlrpc (meta.zcml)
- Changed template summary into: A BlueBream project
- Removed Sphinx-PyPI-upload – no more used as the website is moved to http://bluebream.zope.org
- Added zope.traversing.browser from site.zcml in the project template. Ref: http://bit.ly/80xltO
LP #506879: debug shell added. Basic usage:
./bin/paster shell debug.ini
- Use zope ZCML namespace as default in configure.zcml
- Documentation improvements
- Create a sample application by default
- Update version: zope.tales = 3.5.0
- LP #505362: Fix. Main package name is hard-coded as ‘main’
- Change ‘defaultView’ registration location and interface
- LP #505413: Name of default custom Python interpreter should be able to customize
- LP #502819: Main page after a fresh installation
- Removed hello view from template.
- LP #502941: Add trove classifiers.
- Mention all resources in PyPI page.
- LP #503388: Value of “namespace_package” should not be empty string.
- Updated description, added promotional video.
- LP #503301: Work around fix for “empty directory” problem.
- Change author as “BlueBream” team and email to zope-dev list.
- LP #502817: var directory and its subdirectories not exist
- Documentation improvements: added “Usage” section
- Added functional testing support for project
- Sphinx based documentation infrastruture improvements
- LP #502529: Update wizard to ask all package meta to be updated in setup.py
- Fix missing package data. The 0.1.0 releases was broken.
- Improve documentation.
- Initial release.