Differences between revisions 30 and 53 (spanning 23 versions)
Revision 30 as of 2005-06-26 08:45:07
Size: 4627
Editor: ARennes-204-1-5-58
Comment:
Revision 53 as of 2010-08-15 09:32:33
Size: 4220
Editor: 222
Comment: Update version
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
   URL::  http://karrigell.sourceforge.net
   version:: 2.1.6 (''[[Date(2005-06-26T15:00:00Z)]]'')
   licence:: GPL
   platforms:: any platform that supports Python 2.3
   Python versions:: 2.3
URL:: http://www.karrigell.com

version::3.1 (''<<Date(2010-04-25T15:00:00Z)>>'')

licence::BSD revised

platforms::any platform that supports Python 2.3

Python versions::2.3 and above
Line 13: Line 17:
No requirement besides Python : Karrigell is provided with a web server and a relational database (gadfly). But it can also run behind Apache/ModPython and Xitami No requirement besides Python : Karrigell is provided with a web server and a Python database engine ([[PyDbLite]]). It can also run behind Apache (CGI mode or mod_python) an any web server that supports proxy mode
Line 17: Line 21:
Web sites with moderate traffic, such as personal sites running on a home computer, or stand-alone programs using a web interface Web programming with all the usual tasks (session management, cookies, user management, etc)
Line 19: Line 23:
Demos included in the distribution include a minimal Wiki server, Kwiki (a sort of Wiki, but with the wysiwyg editor FCKEditor), an interface for script internationalization, a forum, and a portal with user login/logout, personalization and news editing
Line 23: Line 26:
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) 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 REQUEST dictionary, or with a variable available in the namespace
Line 31: Line 34:
Standard Python mechanisms Standard Python mechanisms : environment data is available in the namespace where scripts are executed
Line 39: Line 42:
Basic HTTP authentication is available with Authentication(''testFunction''[,''realm,errorMessage'']) where testFunction is a user-defined function taking no argument, which returns true if the authentication test succeeds (depending on the values of AUTH_USER and AUTH_PASSWORD) and false otherwise 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 the user is logged in with the specified role, or redirects to an authentication script ; Role() returns user's role
Line 43: Line 46:
Karrigell is provided with the gadfly database and a relational-object mapping which allows easy storing of the session objects, and of user-related information (preferences, etc). The 100% Python KirbyBase is also included

It can be linked to all databases for which there is a Python API (mySql, Post''''''Gres, etc)
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, Post''''''Gres, etc)
Line 57: Line 58:
 * plain CGI scripts, running much faster than usual because the interpreter is not loaded for each request
Line 60: Line 63:
 * no separate web server (the standard Python distribution provides one)
 * no separate database (gadfly is included), although users can link to any base they like provided there is a Python API for it
 * a built-in web server, interfaces to run behind Apache
       * no configuration needed to get started ; on Windows, an installer allows running an application from an USB drive, even on PCs without Python installed
Line 67: Line 70:
Karrigell will remain light and simple. Current concerns are stability, testing on different platforms, and adding new demos to validate the design and functionalities

Of course, with only 1300 kb, it does not try to rival products such as Zope or Web''''''Ware for Python : "Karrigell" means "cart" in Breton, a light and handy tool, but don't put too much load on it !
Performance and stability have been very much improved since the first versions. Karrigell can now be safely used in production environments
Line 74: Line 75:
[[http://www.webfaction.com|WebFaction]] supports Karrigell

All web hosts using Apache and allowing CGI scripts can support it

Masthead

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

version::3.1 (2010-04-25)

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 (CGI mode or mod_python) an any web server that supports proxy mode

Suitability

Web programming with all the usual tasks (session management, cookies, user management, etc)

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 REQUEST dictionary, or with a variable available in the namespace

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 the 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

  • Python scripts, where the "print" statement is used to send output to the client
  • "Karrigell services" : Python scripts where functions are mapped to URLs (allows to build a whole site with just one script)
  • "Python Inside HTML" (PIH) which looks like PHP, ASP, etc : HTML code with Python code inserted inside <% and %>, with shortcuts for variables : <%= myVar %> and for translated strings which use the gettext mechanism (for which Karrigell provides a simple interface) : <%_ "string to translate" %>

  • "HTML Inside Python" which are Python scripts, except that the lines beginning with a string are sent to standard output as if there were a "print" statement before
  • plain CGI scripts, running much faster than usual because the interpreter is not loaded for each request

InTheirOwnWords

Karrigell aims at simplicity for web developers :

  • a built-in web server, interfaces to run behind Apache
  • no configuration needed to get started ; on Windows, an installer allows running an application from an USB drive, even on PCs without Python installed
    • a namespace for Python scripts in which developers will find all useful data and functions for the most ordinary tasks
    • a way to nest pages and scripts with the Include() function

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

WebFaction supports Karrigell

All web hosts using Apache and allowing CGI scripts can support it

Karrigell (last edited 2010-08-15 09:32:33 by 222)

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