The Zope Web Framework
Project description
BlueBream
Introduction
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.
Features
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
Installation
If you have installed setuptools or distribute an easy_install command will be available. Then, you can install BlueBream using easy_install command like this:
$ easy_install bluebream
Internet access to PyPI is required to perform installation of BlueBream.
The bluebream distribution provides a template based project creation based on PasteScript template. Once BlueBream is installed, run paster command to create the project directory structure. The create sub-command provided by paster will show a wizard to create the project directory structure.
$ paster create -t bluebream
This will bring a wizard asking details about your new project. If you provide package name, namespace package name and version number, you will get a working application which can be modified further. The project name will be used as the name of egg. You can also change the values provided later.
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
If you provide an option from the command line, it will not be prompted by the wizard. The other variables are give below, you may be give the values from command line, if required:
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 a good name for your project.
Usage
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:
$ ./bin/buidout
The buildout script will download all dependencies and setup the environment to run your application.
The most common thing you need while developing application is running the server. BlueBream use paster command provided by PasteScript to run the WSGI server. To run the server, you can pass the PasteDeploy configuration file as the argument to serve sub-command as given here:
$ ./bin/paster serve debug.ini
Once you run the server, you can access it here: http://localhost:8080/ . The port number (8080) can be changed from the PasteDeploy configuration file (debug.ini).
The second most common thing must be running the test cases. BlueBream by create a testrunner using the zc.recipe.testrunner Buildout recipe. You can see a test command inside the bin directory. To run test cases, you can run this command:
$ ./bin/test
Sometimes you may want to get the debug shell. BlueBream provides a Python prompt with your application object. You can invoke the debug shell like this:
$ ./bin/paster shell debug.ini
More about the test runner and debug shell will be exaplained in the BlueBream Manual. You can continue reading about BlueBream from the documentation site.
Resources
The bugs and issues are tracked at launchpad.
IRC Channel: #bluebream at irc.freenode.net
The source code is managed at Zope reposistory. You can perform a read-only checkout of trunk code like this (Anonymous access):
svn co svn://svn.zope.org/repos/main/bluebream/trunk bluebream
You can also become a contributor after signing a contributor agreement
Changelog
1.0a2 (2010-03-02)
Use a template to display default page for the root folder
Use zope.formlib.form.DisplayForm as base class for views instead of zope.publisher.browser.BrowserView
Sample application add form view name is changed from @@add to @@add_sample_app
Add links to to BlueBream website & mailing list
Added license file
Improve “Usage” section in README.txt
Include zest.release to prepare release
Include bluebream_simple template (This will not be released with 1.0a2 as the documentation is not ready yet)
Move bluebream template code to bluebream_base
Add static resource directory with CSS to bluebream_base (based on bluebream_simple). The new style applied to main page.
1.0a1 (2010-02-06)
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)
zope.copypastemove
zope.app.pagetemplate
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
0.1.9 (2010-01-13)
LP #506879: debug shell added. Basic usage:
./bin/paster shell debug.ini
0.1.8 (2010-01-12)
Use zope ZCML namespace as default in configure.zcml
Documentation improvements
Create a sample application by default
0.1.7 (2010-01-10)
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
0.1.6 (2010-01-07)
LP #502819: Main page after a fresh installation
Removed hello view from template.
LP #502941: Add trove classifiers.
Mention all resources in PyPI page.
0.1.5 (2010-01-07)
LP #503388: Value of “namespace_package” should not be empty string.
Updated description, added promotional video.
0.1.4 (2010-01-04)
LP #503301: Work around fix for “empty directory” problem.
Change author as “BlueBream” team and email to zope-dev list.
0.1.3 (2010-01-04)
LP #502817: var directory and its subdirectories not exist
Documentation improvements: added “Usage” section
0.1.2 (2010-01-03)
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
0.1.1 (2010-01-02)
Fix missing package data. The 0.1.0 releases was broken.
Improve documentation.
0.1.0 (2010-01-02)
Initial release.
Download
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.