Differences between revisions 5 and 15 (spanning 10 versions)
Revision 5 as of 2004-09-15 01:06:20
Size: 3980
Editor: cache6-popl
Comment: elaborated on comments a little
Revision 15 as of 2014-04-14 22:58:55
Size: 3410
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
Line 6: Line 7:
   version:: 1.6.1 (''[[Date(2004-07-30T00:00:00)]]'')    version:: 2.3 (Date:2007-01-01)
Line 8: Line 9:
   platforms:: Unix and probably Windows too
   Python versions::
   platforms:: Unix and Windows
   Python versions:: 2.3 or higher
Line 13: Line 14:
CGI, ModPython and custom python-based web servers are supported via Web Server Adaptor classes CGI, ModPython, FastCGI and custom python-based web servers are supported via Web Server Adaptor classes, as is its own Web server, Glass. WSGI support is currently in CVS.
Line 23: Line 24:
Classes for session management are provided Classes for session management are provided, sessions can be stored in memory, in the database, or a custom session container can be written easily.
Line 27: Line 29:
Provides a [http://aquarium.sourceforge.net/api/public/aquarium.database.DatabaseAssistant.DatabaseAssistant-class.html DatabaseAssistant] class that abstracts and assists in database connectivity using DBAPI modules Provides a [[http://aquarium.sourceforge.net/api/public/aquarium.database.DatabaseAssistant.DatabaseAssistant-class.html|DatabaseAssistant]] class that abstracts and assists in database connectivity using DBAPI modules
Line 31: Line 33:
Uses and tightly integrates [http://www.cheetahtemplate.org Cheetah] templating engine Uses and tightly integrates [[http://www.cheetahtemplate.org|Cheetah]] templating engine. The Aquarium project leader is also now a co-developer of Cheetah, so the integration of Cheetah can only improve from an already high level.
Line 35: Line 37:
Aquarium is a Web application framework written in Python. It's features were inspired by a broad range of Web technologies (such as PHP's [http://share.whichever.com/index.php?SCREEN=freetrade FreeTrade], Java's Struts, Perl's Mason, and Python's Zope). It offers convenient libraries (such as session management), tight integration with Cheetah (including autocompilation of Cheetah templates), adaptors for various Web environments (including CGI, mod_python, and custom Web servers), and a convenient approach to Web development ([http://www.zend.com/zend/art/free-energy.php the FreeEnergy methodology]). Most of all, it's compact (just a few thousand lines of code) and extremely well documented. Aquarium is a useful tool for creating any highly-dynamic, custom Web application written in Python. Aquarium is a Web application framework, written in Python. It provides an approach to producing a Web application without duplication of effort by reducing the amount of code you need to write. It offers convenient libraries and extensible APIs for items such as session management and Web server integration (including CGI, mod_python, FastCGI, or its own Web server, Glass). It provides tight integration with Cheetah, including autocompilation of Cheetah templates. Last of all, it offers a convenient approach to Web development. As a developer, you just "plug in" modules; Aquarium ties them all together.

Aquarium's features were inspired by a broad range of Web technologies (such as PHP's [[http://share.whichever.com/index.php?SCREEN=freetrade|FreeTrade]], Java's Struts, Perl's Mason, and Python's Zope). It is Open Source software, available under a BSD-style license. Aquarium is compact--just a few thousand lines of code--and extremely well documented. It's a useful tool for creating any highly-dynamic, custom Web application written in Python.
Line 41: Line 45:
    * A view's superclass should take care of layout details automatically. In fact, a view should not need to do anything other than declare who it is subclassing (who you subclass and how many layers there are in the class hiearchy should not require you to change the name of your main method). See aquarium.layout.LayoutAPI for more on this.     * A view's superclass should take care of layout details automatically. In fact, a view should not need to do anything other than declare who it is subclassing (who you subclass and how many layers there are in the class hierarchy should not require you to change the name of your main method). See aquarium.layout.LayoutAPI for more on this.
Line 43: Line 47:
=== Comments === Aquarium is now used world wide. I.e. there are people in at least the following countries using it: US, England, the Netherlands, the Ukraine, and Australia.
Line 45: Line 49:
As an MVC-based web framework, Aquarium bears at least a superficial resemblance to the [http://actionpack.rubyonrails.org/show/HomePage Action Pack] part of the [http://www.rubyonrails.org/show/HomePage Rails] framework. Aquarium's Screens correspond to Rails' Action Controllers and Aquarium has Cheetah templates where Rails' has Action Views.

Aquarium doesn't possess the equivalent of [http://activerecord.rubyonrails.org/show/HomePage Active Record]. Interestingly though, Ian Bicking has a [http://blog.colorstudy.com/ianb/weblog/2004/09/06.html#P154 blog post showing a SQLObject implementation] of this [http://www.loudthinking.com/arc/000297.html Active Record example].

The Aquarium/SQLObject combo seems to be comparable to Rails but has had neither the same level of documentation, integration and publicity as its Ruby-based rival. Aquarium is little known in the Python web programming world, it has always had a low profile and a 2 year hiatus prior to development restarting earlier this year didn't help. Also it has been overshadowed by Zope and to a lesser degree, other web frameworks.

On the upside, there have been 5 releases this year, including improved documentation and a switch to using Cheetah for templating instead of a homegrown template engine

A framework for WebProgramming.

Masthead

URL

http://aquarium.sourceforge.net

version

2.3 (Date:2007-01-01)

licence
Aquarium is open source software available under a BSD-style license.
platforms
Unix and Windows
Python versions
2.3 or higher

Deployment Platforms

CGI, ModPython, FastCGI and custom python-based web servers are supported via Web Server Adaptor classes, as is its own Web server, Glass. WSGI support is currently in CVS.

Suitability

Development Interfaces

Environment Access

Session, Identification and Authentication

Classes for session management are provided, sessions can be stored in memory, in the database, or a custom session container can be written easily.

Persistence Support

Provides a DatabaseAssistant class that abstracts and assists in database connectivity using DBAPI modules

Presentation Support

Uses and tightly integrates Cheetah templating engine. The Aquarium project leader is also now a co-developer of Cheetah, so the integration of Cheetah can only improve from an already high level.

InTheirOwnWords

Aquarium is a Web application framework, written in Python. It provides an approach to producing a Web application without duplication of effort by reducing the amount of code you need to write. It offers convenient libraries and extensible APIs for items such as session management and Web server integration (including CGI, mod_python, FastCGI, or its own Web server, Glass). It provides tight integration with Cheetah, including autocompilation of Cheetah templates. Last of all, it offers a convenient approach to Web development. As a developer, you just "plug in" modules; Aquarium ties them all together.

Aquarium's features were inspired by a broad range of Web technologies (such as PHP's FreeTrade, Java's Struts, Perl's Mason, and Python's Zope). It is Open Source software, available under a BSD-style license. Aquarium is compact--just a few thousand lines of code--and extremely well documented. It's a useful tool for creating any highly-dynamic, custom Web application written in Python.

Aquarium is based around these ideas:

  • Web applications can be thought of as a combination of a bunch of different types of modules. Aquarium serves as the framework for dynamically tying all of these modules together.
  • The main request flow of an application involves a controller that does work and produces data. That data is passed off to a view that displays that data. See aquarium.screen.ScreenAPI for more on this.
  • A view's superclass should take care of layout details automatically. In fact, a view should not need to do anything other than declare who it is subclassing (who you subclass and how many layers there are in the class hierarchy should not require you to change the name of your main method). See aquarium.layout.LayoutAPI for more on this.

Aquarium is now used world wide. I.e. there are people in at least the following countries using it: US, England, the Netherlands, the Ukraine, and Australia.

Hosting

Aquarium (last edited 2014-04-14 22:58:55 by DaleAthanasias)

Unable to edit the page? See the FrontPage for instructions.