ZTFY web application template
Table of Contents
ZTFY.webapp is mainly based on BlueBream concepts and packages, but introduces a few changes and a set of new functionalities ; it’s main goal is to provide a Paster template to create a new ZTFY.blog based web site in just a few seconds.
More informations about ZTFY packages can be found on ZTFY home page.
The “webapp” is nothing more than a “configuration container”, which references and configures all packages needed to handle a web site ; it doesn’t provide any real functionality in itself, except those required to handle the web server in itself.
BlueBream – formerly known as Zope 3 – is a web framework written in the Python programming language.
Here are the features distinguishing BlueBream from other Python web frameworks:
- BlueBream is built on top of the Zope Toolkit (ZTK), which has many years of experience proving it meets the demanding requirements for stable, scalable software.
- BlueBream uses the powerful and familiar Buildout building system written in Python.
- BlueBream employs the Zope Object Database ZODB, a transactional object database, providing extremely powerful and easy to use persistence.
- BlueBream registers components with Zope Component Markup Language (ZCML), an XML based configuration language, providing limitless flexibility.
- BlueBream features the Zope Component Architecture (ZCA) which implements Separation of concerns to create highly cohesive reusable components (zope.component).
- BlueBream implements the WSGI specification (Web Server Gateway Interface) with the help of PasteDeploy.
- BlueBream includes a number of well tested components to implement
common activities. A few of these are:
- zope.publisher publishes Python objects on the web, emphasizing WSGI compatibility
- zope.security provides a generic mechanism for pluggable security policies
- zope.testing and zope.testbrowser offer unit and functional testing frameworks
- zope.pagetemplate is an XHTML-compliant language for developing templates
- zope.schema is a schema engine to describe your data models
- zope.formlib is a tool for automatically generating forms from your schemas
On top of this, ZTFY provides a few set of additional packages, which allows you to manage a full web site in just a few minutes, including :
- a complete content management interface (based on z3c.form)
- an alternate ZMI
- a structured web site, containing sections and articles, blog(s), topics…
- images galleries
- and many more little features, described on ZTFY home page.
You will also find on this web page all informations required to know how to create and setup a new web site using these packages.
Three simple skins are provided in the default setup, and a “nearly ready to use” configuration file for Apache2 mod_wsgi module is also provided.
$ easy_install ztfy.webapp
Internet access to PyPI is required to perform installation of ZTFY.webapp.
The ZTFY.webapp distribution provides a quick project creation tool based on PasteScript templates. Once ZTFY.webapp 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 ztfy.webapp
This will bring a wizard asking details about your new project. If you provide a package name and version number, you will get a working application which can be modified further. The project name will be used as the egg name. You can also change the values provided later.
The project name can be given as a command line argument:
$ paster create -t ztfy.webapp sampleproject
If you provide an option from the command line, it will not be prompted by the wizard. The other variables are given below, you can give the values from the command line, if required:
- interpreter – Name of the custom Python interpreter
- release – The version of ZTFY.webapp
- version – The version of your project (eg:- 0.1)
- description – One-line description of the package
- long_description – Multi-line description (in reStructuredText)
- keywords – Space-separated keywords/tags
- author – Author name
- author_email – Author email
- url – URL of the homepage
- license_name – License name
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.
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 $ python bootstrap.py
The bootstrap script will install the zc.buildout and distribute packages. 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.
The most common thing you need while developing an application is running the server. ZTFY.webapp uses the 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. ZTFY.webapp creates a testrunner using the zc.recipe.testrunner Buildout recipe. You can see a test command inside the bin directory. To run test cases, just run this command:
Sometimes you may want to get the debug shell. ZTFY.webapp 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 explained in the BlueBream Manual. You can continue reading about BlueBream from the documentation site.
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 see more details about contributing in wiki.
- added ZTFY.base and ZODBBrowser in default project dependencies and configuration
- activate Fanstatic “bottom” option for resources, as all ZTFY packages are now compatible with it
- remove several packages (ztfy.gallery, ztfy.hplskin and ztfy.alchemy) from standard configuration, as they are not required in most default environments
- moved main configuration file (configure.zcml) from src/webapp/ directory to etc/
- register “overrides.zcml” from ztfy.skin package instead of ztfy.blog
- removed ztfy.jqueryui ZCML files include
- added gzip filter in deploy.ini pipeline (Fanstatic configuration is not compatible with Apache’s mod_deflate for static resources)
- added conditional Apache’s mod_upload_progress configuration
- added mod_wsgi comments in generated README.txt
- modified Apache’s mod_ssl configuration
- changed application factory to force ++vh++ namespace in HTTPS
- disabled site packages and picked versions in generated buildout
- changed WSGIScriptAlias path in Apache mod_wsgi configuration
- initial release (based on BlueBream)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|ztfy.webapp-1.1.5-py2.7.egg (41.5 kB) Copy SHA256 hash SHA256||Egg||2.7||Sep 23, 2013|
|ztfy.webapp-1.1.5.tar.gz (26.6 kB) Copy SHA256 hash SHA256||Source||None||Sep 23, 2013|