Revision 50 as of 2008-04-27 09:03:25

Clear message

Masthead

URL:: http://www.karrigell.com

version::2.4.0 (Date(2008-04-12T15:00:00Z))

licence::BSD revised

platforms::any platform that supports Python 2.3

Python versions::2.3 and above

Deployment Platforms

No requirement besides Python : Karrigell is provided with a web server and a Python database engine (["PyDbLite"]). It can also run behind Apache, LighTPD and Xitami

Suitability

Web programming

Demos included in the distribution include a Wiki server, Kwiki (a sort of Wiki, but with the wysiwyg editor FCKEditor), a forum, a calendar, an interface for script internationalization, and a portal with user login/logout, personalization and news editing

Development Interfaces

Servlet-style : the scripts, either pure Python or mixing HTML and Python, are executed in a namespace which provides all useful information, including HTTP headers, authentication data, etc. For instance, form fields are available as the QUERY dictionary, or with a variable with a leading underscore (the field myField is available as _myField, either a string or a list depending on the field type)

The namespace also provides custom exceptions to stop its execution, such as HTTP_REDIRECTION (see the on-line documentation)

A function Include(script_or_file, **args) allows the inclusion of an html file or of a file inside a script. If script B is included inside script A, it is executed in script A's namespace ; additional **args can be added to this namespace

Environment Access

Standard Python mechanisms : environment data is available in the namespace where scripts are executed

Session, Identification and Authentication

Provided through functions available in scripts

Session() returns a session object, to which attributes can be set (arbitrary Python objects : user login, database connexion and cursor, etc.)

A user management framework allows the site administrator to manage a user database with roles(admin, editor, visitor). In scripts, function Login(role) checks if user is logged in with the specified role, or redirects to an authentication script ; Role() returns user's role

Persistence Support

Karrigell is provided with the pure-Python ["PyDbLite"] database engine

It can be linked to all databases for which there is a Python API (SQLite, MySQL, PostGres, etc)

Presentation Support

InTheirOwnWords

Karrigell aims at simplicity for web developers :

The inspirations were EasyPHP, a package which provides Apache, PHP, mySql and PHPmyAdmin all in one, and saves the pain of installing each of them and make them all work together ; the wittily named Poor Man's Zope (PMZ) which showed how easy it was to make Python servlets (unfortunately unmaintained) ; and the pleasure I have programming things in Python

Performance and stability have been very much improved since the first versions. Karrigell can now be safely used in production environments

Comments

Hosting

[http://www.webfaction.com WebFaction] supports Karrigell

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