[Python-au] Karrigell Report Part-1

Mike Dewhirst miked at dewhirst.com.au
Wed Jul 27 08:46:40 CEST 2005

Here is a progress report on my Karrigell journey. I am impressed. The
demo worked without error and it appears to be a very nice piece of 
software. I'm going to try it out writing a lightweight web survey form 
  and deploy on my Linux server after developing on my Windows XP 
laptop.  This is how I installed and looked at the demos.

I am most impressed with the debugging facilities :) Much needed by moi!

What I did so far ...

1.   Laptop address is
2.   Downloaded
3.   Unzipped to my C:\Python directory which gave me a
C:\Python\Karrigell-2.1.7 directory
4.   Opened a cmd window
5.   Changed directory to C:\Python\Karrigell-2.1.7\gadfly-1.0.0 as per
installation instructions
6.   Entered python setup.py install. See attached gadfly_install.txt
for the results
7.   For my own convenience on the laptop's path, made Karrigell.bat as
follows ...
             cd \Python\Karrigell-2.1.7
             python Karrigell.py

8.   Executed said Karrigell.bat which did ...

             cd \Python\Karrigell-2.1.7
             C:\Python\Karrigell-2.1.7>python Karrigell.py
             Warning - KirbyBase is not installed
             Karrigell 2.1.7 running on port 80
             Debug level 1
             Press Ctrl+C to stop

             (I don't know yet what KirbyBase might be.)

9.   On a nearby desktop machine I launched Mozilla and pointed it at and up came the Karrigell home page ...

  (see attached index.txt for the

It has a tour which demonstrates a heap of cool features as well as the
more elaborate demos listed below (copied from the home
page) My comment is in [brackets] ...
     * a calendar
     * a forum
     * a simple Wiki server
     * Kwiki, a wiki server using the FCKEditor wysiwyg text editor
     * a simple record collection program, using a single ks script and
the gadflyStorage module
     * a portal, in which components are included using the Include()
function. It makes an extensive use of session handling to display a
different interface according to the registered users preferences, and
allows editing of news by these users. It uses the gadfly database for
user profile management and news edition
     * an e-business demo : buy breton songs on-line !
     * this script is bugged, just to show how exceptions are shown and
how the debugger works

[ All the above demos worked without a hitch. The next one did too but I
needed to head back to the laptop and open a new cmd window and run the
k_password.py script. It uses MD5 to hash the password. ]

     * site administrators can browse gadfly databases on-line. Access to
these pages requires authentication ; login and password must be set
beforehand, using the script k_password.py

As I said above, I am impressed.

About to design a web survey. I'll keep you posted :)


  -- - - - - -

Mike Dewhirst wrote:

> Has anyone had any experience with Karrigell 
> http://karrigell.sourceforge.net/en/front.htm ??
> I'm actually still looking for some web survey software I can 
> customise but Karrigell looks like it might help me roll my own.
> Does anyone have any opinions on a lightweight mechanism for a "quick" 
> web application. It needs to collect some answers from users and store 
> them in a database. Nothing tricky. It will be replaced in due course 
> by a properly designed app when the requirements solidify.
> Comments much appreciated ...
> Thanks
> Mike

-------------- next part --------------
Output from gadfly setup

C:\Python\Karrigell-2.1.7\gadfly-1.0.0>python setup.py install
building grammar file
running install
running build
running build_py
copying gadfly\sql_mar.py -> build\lib\gadfly
running build_scripts
running install_lib
creating C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\bindings.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\client.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\database.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\gfsocket.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\grammar.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\introspection.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\kjbuckets0.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\kjbuckets_select.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\kjParseBuild.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\kjParser.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\kjSet.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\operations.py -> C:\Python\Python23\Lib\site-packages\gadfly
creating C:\Python\Python23\Lib\site-packages\gadfly\scripts
copying build\lib\gadfly\scripts\gfplus.py -> C:\Python\Python23\Lib\site-packages\gadfly\scripts
copying build\lib\gadfly\scripts\gfserver.py -> C:\Python\Python23\Lib\site-packages\gadfly\scripts
copying build\lib\gadfly\scripts\__init__.py -> C:\Python\Python23\Lib\site-packages\gadfly\scripts
copying build\lib\gadfly\semantics.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\serialize.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\server.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\sql.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\sql_mar.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\store.py -> C:\Python\Python23\Lib\site-packages\gadfly
copying build\lib\gadfly\__init__.py -> C:\Python\Python23\Lib\site-packages\gadfly
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\bindings.py to bindings.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\client.py to client.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\database.py to database.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\gfsocket.py to gfsocket.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\grammar.py to grammar.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\introspection.py to introspection.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\kjbuckets0.py to kjbuckets0.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\kjbuckets_select.py to kjbuckets_select.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\kjParseBuild.py to kjParseBuild.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\kjParser.py to kjParser.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\kjSet.py to kjSet.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\operations.py to operations.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\scripts\gfplus.py togfplus.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\scripts\gfserver.py to gfserver.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\scripts\__init__.py to __init__.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\semantics.py to semantics.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\serialize.py to serialize.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\server.py to server.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\sql.py to sql.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\sql_mar.py to sql_mar.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\store.py to store.pyc
byte-compiling C:\Python\Python23\Lib\site-packages\gadfly\__init__.py to __init__.pyc
running install_scripts
copying build\scripts-2.3\gfplus -> C:\Python\Python23\Scripts
copying build\scripts-2.3\gfplus.bat -> C:\Python\Python23\Scripts
copying build\scripts-2.3\gfserver -> C:\Python\Python23\Scripts
copying build\scripts-2.3\gfserver.bat -> C:\Python\Python23\Scripts


-------------- next part --------------
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<link rel="SHORTCUT ICON" href="/doc/images/karrigellfav.gif" >
<STYLE type=text/css>
body, td {font-family: arial, verdana,sans-serif;
	font-size: 10pt;
	text-align: justify;
	color: #303030;}

td.header {	width: 70%;

td.maintext { width: 70%;
	padding-top: 30px;
	border-top-width: 0px;
	border-left-width: 1px;
	border-bottom-width: 1px;
	border-color: black;
	border-style: solid;

td.side { width: 15%; }


<BODY bgcolor="#D0D0D0">

<table cellpadding="0" cellspacing="0">


<td class="side">&nbsp;</td>


<table cellpadding="0" cellspacing="0">
<td class="header">
	<TABLE width="100%" bgcolor="#404040" cellpadding0 cellspacing="0">
		<TD vAlign=center align=left><IMG src="doc/images/karrigell.gif" border=0></TD>
		<TD vAlign=center><FONT size=+3 color="#FFFFFF">
		welcome to Karrigell</FONT>


<td class="maintext">

	This is the home page of Karrigell, a web framework including
	a web server, a Python script engine and a relational database (gadfly) : all you
	need to build dynamic web applications
	<p>Karrigell can also work with external web servers (Apache, Xitami) and
	all the databases for which a Python API exists (sqlite, mySql, PostGreSQL, ZODB, etc).
	A dictionary-like interface to gadfly and sqlite allows storage and retrieval of
	Python objects without explicit SQL commands : open a base, create a Python
	object and write it to the base by <code>db.write(obj)</code>
	<p>If you want to see examples, take a <a href="demo/tour.htm">tour</a> of
	some demos, which will show you how to use authentication, sessions, how to
	handle HTTP forms, include scripts inside other scripts, etc
	<p>More elaborate demos include

	<li>a <a href="demo/calendar">calendar</a>
	<li>a <a href="demo/forum">forum</a>
	<li>a simple <a href="demo/Wiki">Wiki server</a>
	<li><a href="demo/kwiki">Kwiki</a>, a wiki server using the
	<a href="http://www.fckeditor.net" target="_blank">FCKEditor</a> wysiwyg text editor
	<li>a simple <a href="demo/records.ks">record collection program</a>, using a single
	ks script and the gadflyStorage module
	<li>a <a href="demo/portal">portal</a>, in
	which components are included using the <code>Include()</code> function. It makes an
	extensive use of session handling to display a different interface according
	to the registered users preferences, and allows editing of news by these
	users. It uses the gadfly database for user profile management and news edition
	<li>an <a href="demo/business">e-business</a> demo : buy breton songs on-line !
	<li>this <a href="demo/scriptErrorTest.pih">script</a> is bugged, just to show how
	exceptions are shown and how the debugger works
	<li>site administrators can <a href="admin/gadflyadmin.pih">browse gadfly databases</a>

	on-line. Access to these pages requires authentication ; login and password must be
	set beforehand, using the script <code>k_password.py</code>
	<p>For a more detailed information browse the <A href="doc/en/front.htm">
	<p>For feedback, bug report, etc please send an e-mail to the
	<A href="mailto:karrigell-main at lists.sourceforge.net">Karrigell mailing list</A>


	<i>Karrigell v2.1.7 </i>

	<p><a href="http://www.python.org/">
	<img src="doc/images/PythonPowered.gif" align=top width=110 height=44 alt="[Python Powered]" border=0>
	<a href="http://sourceforge.net">

	<img src="doc/images/sourceforge_logo.png" align=top width=125 height=37 alt="[Hosted by Sourceforge]" border=0>


<td style="background-color: #D0D0D0; height: 20px">&nbsp;</td>


<td class="side" rowspan="3">&nbsp;</td>



More information about the python-au mailing list