Albatross - a Toolkit for Stateful Web Applications
Albatross is a small and flexible Python toolkit for developing highly stateful web applications. The toolkit has been designed to take a lot of the pain out of constructing intranet applications although you can also use Albatross for deploying publicly accessed web applications.
In slightly less than 2600 lines of Python (according to pycount), you get the following:
- An extensible HTML templating system similar to DTML that promotes separation of presentation and implementation for improved program maintainability. The templating system includes tags for:
o Conditional processing, o Macro definition and expansion, o Sequence iteration and pagination, o Tree browsing, o Lookup tables to translate Python values to arbitrary template text.
- The ability to place Python code for each page in a dynamically loaded module, or to place each page in it's own class in a single mainline.
- Optional sessions, which can be either:
o Browser based sessions via automatically generated hidden form fields (cryptographically signed to ensure integrity), o Server-side sessions via a supplied TCP session server, o Server-side file based session store.
- Applications that can be deployed as either CGI programs or as mod_python module with minor changes to program mainline. Custom deployment can be achieved by developing your own Request class.
- Over 120 pages of documentation including many installable samples.
A primary design goal of Albatross is that it be small and easy to use and extend. The toolkit application functionality is defined by a collection of fine grained mixin (See Python - Mixin Classes) classes. Eight different application types and four different execution contexts are prepackaged, allowing you to define your own drop in replacements for any of the mixinsto alter any aspect of the toolkit semantics.
Object Craft developed Albatross because there was nothing available with the same capabilities which they could use for consulting work. For this reason the toolkit is important to Object Craft and so is actively maintained and developed.
For more information see http://www.object-craft.com.au/projects/albatross/