karrigell-main Mailing List for Karrigell (Page 76)
Brought to you by:
quentel
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(12) |
Jun
(4) |
Jul
(1) |
Aug
|
Sep
(8) |
Oct
(12) |
Nov
(6) |
Dec
(38) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(19) |
Feb
(13) |
Mar
(4) |
Apr
(8) |
May
(4) |
Jun
(12) |
Jul
(3) |
Aug
(6) |
Sep
(4) |
Oct
(8) |
Nov
(6) |
Dec
(8) |
2005 |
Jan
(14) |
Feb
(6) |
Mar
(10) |
Apr
(20) |
May
(60) |
Jun
(80) |
Jul
(11) |
Aug
(32) |
Sep
(25) |
Oct
(9) |
Nov
(25) |
Dec
(60) |
2006 |
Jan
(6) |
Feb
(3) |
Mar
|
Apr
|
May
(2) |
Jun
(1) |
Jul
(3) |
Aug
(5) |
Sep
(9) |
Oct
(61) |
Nov
(77) |
Dec
(127) |
2007 |
Jan
(73) |
Feb
(56) |
Mar
(47) |
Apr
(107) |
May
(83) |
Jun
(117) |
Jul
(172) |
Aug
(99) |
Sep
(39) |
Oct
(15) |
Nov
(28) |
Dec
(57) |
2008 |
Jan
(39) |
Feb
(60) |
Mar
(105) |
Apr
(254) |
May
(193) |
Jun
(128) |
Jul
(107) |
Aug
(78) |
Sep
(83) |
Oct
(14) |
Nov
(9) |
Dec
(73) |
2009 |
Jan
(71) |
Feb
(48) |
Mar
(70) |
Apr
(72) |
May
(132) |
Jun
(123) |
Jul
(71) |
Aug
(32) |
Sep
(25) |
Oct
(38) |
Nov
(5) |
Dec
(18) |
2010 |
Jan
(12) |
Feb
(5) |
Mar
(33) |
Apr
(60) |
May
(105) |
Jun
(75) |
Jul
(41) |
Aug
(53) |
Sep
(38) |
Oct
(6) |
Nov
(8) |
Dec
(4) |
2011 |
Jan
(8) |
Feb
(4) |
Mar
(3) |
Apr
(9) |
May
(2) |
Jun
(3) |
Jul
(3) |
Aug
(7) |
Sep
(9) |
Oct
(8) |
Nov
(3) |
Dec
(2) |
2012 |
Jan
(4) |
Feb
(5) |
Mar
(7) |
Apr
(1) |
May
(3) |
Jun
(12) |
Jul
(17) |
Aug
(16) |
Sep
(13) |
Oct
(8) |
Nov
(1) |
Dec
|
2013 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
(12) |
May
(6) |
Jun
(8) |
Jul
(1) |
Aug
(1) |
Sep
(4) |
Oct
(4) |
Nov
(4) |
Dec
(3) |
2014 |
Jan
(4) |
Feb
(2) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
(5) |
Jul
(2) |
Aug
(1) |
Sep
(2) |
Oct
|
Nov
(2) |
Dec
(1) |
2015 |
Jan
(2) |
Feb
(1) |
Mar
(3) |
Apr
(1) |
May
(1) |
Jun
(4) |
Jul
(3) |
Aug
(3) |
Sep
(4) |
Oct
(1) |
Nov
|
Dec
|
2016 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Luis C. <lc...@ma...> - 2005-03-14 05:09:06
|
For those interested, I added this configuration for using the Karrigell Web Server as a target for Apache Proxy. Also, it works for ssl too, just add to ssl.conf. CODE: ======================================= LoadModule python_module modules/mod_python.so SetHandler python-program PythonHandler ApacheHandler <VirtualHost *:80> ServerAdmin x@yyy.zzz DocumentRoot /usr/local/apache2/htdocs SetHandler python-program PythonPath "sys.path+['/usr/local/apache2/karri']" PythonHandler ApacheHandler PythonDebug on ServerName localhost.xyz.net ProxyRequests on <Proxy *> Order allow,deny Deny from none Allow from all </Proxy> ProxyPass / http://localhost:9080/ ProxyPassReverse / http://localhost:9080/ # ProxyPass /misc_ http://localhost:9080/misc_ # ProxyPass /p_ http://localhost:9080/p_ RewriteRule /(.*) http://localhost:9080/$1 [P,L] </VirtualHost> ====================================== |
From: Luis C. <lc...@ma...> - 2005-03-14 02:35:29
|
Hello: Reading some of the comments on the forum, it sounds like apache or maybe just apache2 support is not there yet. I'm a Zope user ( or was ). It is just to hard to do things with Zope once you get into it. I prefer the KISS methology of Karrigell and I like writing my stuff in pure python too. I got this trace back while running the demo and I think it is associated with the same problem you've been having before with Apache2. Traceback (most recent call last): File "/usr/local/apache2/karri/Template.py", line 163, in render exec pythonCode in ns File "<string>", line 3, in ? NameError: name '_content' is not defined I am using the latest everything: Apache2 - 2.0.53 mod_python - 3.1.4 Karrigell - 2.1.2 ( well there might be a later version than this, but I can't get to it yet ). I'll be happy to send you other information that may be useful too (apache configure options ? ). Also, there may be another way to skin this cat. I have used this trick for years with Zope. You setup your Karrigell web server behind your apache2 server by using the proxy command set of Apache. So your web request comes in to Apache2 and then Apache2 redirects "transparently" to a local running Karrigell web server ( is there an acronym I can use for the web server?? ). I'll try it to see if it works. Luis. |
From: Pierre Q. <que...@wa...> - 2005-03-13 21:29:18
|
I have found this Python web framework comparison : http://the.taoofmac.com/space/blog/2005-02-13 The author seems to have a fairly good opinion on Karrigell (although he eventually chose Snakelets) : ------------------------- This was the first "light" application server I looked at, and it kind of set the tone for the rest of my search. It was simple, neat and effective, although in need of a bit more polish. Pluses: * Templating, session, authentication, internationalization support. * Enough of a mix between object orientation and templating for real-life work. * Small code base. Minuses * Simplistic web server based on BaseHTTPServer. No gzip support, no HTTP <http://the.taoofmac.com/space/HTTP> 1.1 features, etc. * Small developer community (almost no activity on mailing-lists). * Documentation needs some work. ----------------------------- With the last release the web server is hopefully less "simplistic" and gzip support is under way I wonder what to do about the documentation ; do you have an opinion on how to improve it ? For instance, should I include a tutorial ? Another point about comparisons : the PyWebOff project (http://pyre.third-bit.com/pyweb/) will be presented at the next Python Conference. 7 frameworks are reviewed, Karrigell is one of them, so this should give some more exposure to it - although it doesn't seem the project team has done much work on it so far A+, Pierre |
From: Pierre Q. <que...@wa...> - 2005-03-13 21:17:57
|
I have released version 2.1.2 of Karrigell. I've been waiting for weeks, hoping the statistics on sourceforge work again (I like to see how many people visit the page and download when I release a version) but it's still stopped on January,15th... The main changes in this new release are : - a change in the default web server : instead of the SocketServer-based server, the one used when running python Karrigell.py is now an asyncore-based, asynchronous web server. From the measures I have made it it something like 30% faster than the previous one, and seems very stable. The SocketServer-based server can still be used, running python Karrigell_SocketServer.py - the If-Modified-Since header is now handled for static pages (patch by Luca Montecchiani) - the Content-Length header was missing - a new module called HTMLTags has been added, it can be used to generate HTML with Python functions. For instance, print A('Go there',href="foo.py") generates the HTML <A HREF="foo.py">Go there</A> - the Component features present in the previous versions has been removed. The concept of ready-to-use pieces of code still makes sense to me, but the implementation was ugly and bugged (trying to include components in other components failed). Perhaps it will come back in a future version, if I can find better ways to implement it - the small, all-Python KirbyBase database has been included in the package, with some demos already running with it (more support will be added in the next versions) - changes in Template.py to make the namespace for script execution cleaner As usual, comments and bug fixes are welcome ! The "to do list" (http://www.karrigell.cafewiki.org/index.php?ToDoList) is updated, I am working on the gzip encoding Cordialement, Pierre |
From: Pierre Q. <que...@wa...> - 2005-02-19 07:08:11
|
I'm not sure, but this could be related to the proxy settings of IE. When you're at home, go to Tools/Internet options/Connections/LAN settings and uncheck the boxes so that IE doesn't look for proxies, then try to connect to http://127.0.0.1 Hope this helps, Pierre |
From: Wayan W. <way...@gm...> - 2005-02-19 04:55:37
|
I face this kind of problem too. I use my machine ( Windows ) at home where there is no network or internet. I started Karrigell an it run fine, but IE failed to access http://127.0.0.1/ ( with the message exactly the same as Gabriele Giorgetti posted ), or if it even succeed but it takes too long . In mean time, if I use my machine at work ( I connected it to network ), I always succeed to access http://127.0.0.1/. If I disconnects the cable from the NIC , it will failed with the same message. Is it normal ?, Please help me. As I mostly doing my Python/Karrigell thingy at home , and I want to working on Karrigell at home. Thankyou. Wayan Wandira BALI > Karrigell often traces the error below do you already know anything > about it ? > [...] > error: (104, "Connection reset by peer") |
From: Remco B. <re...@to...> - 2005-02-15 08:48:55
|
> This is simply because some modules don't have a __file__ attribute : > "The __file__ attribute is not present for C modules that are statically > linked into the interpreter" according to the Python Reference Manual. > For instance, itertools or operator. There is no point in reloading > these modules, which can't be modified > Hope I have satisfied your curiosity ! Thanks! now i know what the problem was i guess. I've been playing with modules quite a bit in my latest setup. And i got strange errors: view a page, get an error msg, about some attribute of a module not being available. while True: Reload the page, not a problem. Reload the page error is back again so i got rid of the file stuff in there, and it seems to work. Not that i create modules on the fly, but some things sure seem like it :) Especially if it's checked against the sys.path list ;) as i change that list during page buildup. Anyway, thanks for the explanation. Maybe this mail can be a pointer if someone else has the same issues :) -- @+ Remco Boerma IPN Developer |
From: Pierre Q. <que...@wa...> - 2005-02-14 20:21:13
|
Remco Boerma a =E9crit : > Hi all, > > does anyone have an idea why the module reloading in the handlers > uses some kind of filecheck? > > if m and (m.__name__ not in initialModules) and hasattr(m,"__file__")= : > if os.path.dirname(m.__file__) in sys.path: > > it bugged me quite a bit :) so i'm curious why it's in there. . > > This is simply because some modules don't have a __file__ attribute :=20 "The __file__ attribute is not present for C modules that are statically=20 linked into the interpreter" according to the Python Reference Manual.=20 For instance, itertools or operator. There is no point in reloading=20 these modules, which can't be modified Hope I have satisfied your curiosity ! A+ Pierre |
From: Remco B. <re...@to...> - 2005-02-14 13:13:44
|
Hi all, does anyone have an idea why the module reloading in the handlers uses some kind of filecheck? if m and (m.__name__ not in initialModules) and hasattr(m,"__file__"): if os.path.dirname(m.__file__) in sys.path: it bugged me quite a bit :) so i'm curious why it's in there. . -- Met vr. gr. Remco Boerma mailto:re...@to... http://assen.sp.nl |
From: Pierre Q. <que...@wa...> - 2005-02-05 14:59:16
|
I've never been satisfied with the way HTML code is produced by the modules in Karrigell, they all require the code to be written litterally, with long, often multi-line strings with opening and closing tags I knew of HTMLGen but it was too big and a little too difficult for the scope of Karrigell ; so I finally wrote a very small module called HTMLTags (less than 100 lines of code), I've just published it on the Python Cookbook at http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/366000 This is how it works : The HTMLTags module defines a class for all the valid HTML tags, written in uppercase letters. To create a piece of HTML, the general syntax will be : t = TAG(innerHTML, key1=val1,key2=val2,...) so that "print t" results in : <TAG key1="val1" key2="val2" ...>innerHTML</TAG> For instance : print A('bar', href="foo") ==> <A href="foo">bar</A> To generate HTML attributes without value, give them the value True : print OPTION('foo',SELECTED=True,value=5) ==> <OPTION value="5" SELECTED> For non-closing tags such as <IMG> or <BR>, the print statement does not generate the closing tag The innerHTML argument can be an instance of an HTML class, so that you can nest tags, like this : print B(I('foo')) ==> <B><I>foo</I></B> Instances of the HTML classes support the addition : print B('bar')+INPUT(name="bar") ==> <B>bar</B><INPUT name="bar"> and also repetition : print TH(' ')*3 ==> <TD> </TD><TD> </TD><TD> </TD> If you have a list of instances, you can't concatenate the items with sum(instanceList) because sum takes only numbers as arguments. So there is a function called Sum which will do the job : Sum([ TR(TD(i)+TD(i*i)) for i in range(100) ]) generates the rows of a table showing the squares of integers from 0 to 99 The innerHTML argument can be a string, but you can't concatenate a string and an instance of an HTML class, like in : H1('To be or ' + B('not to be')) For this, use a class called TEXT, which will not generate any tag : H1(TEXT('To be or ') + B('not to be')) A simple document can be produced by : print HTML( HEAD(TITLE('Test document')) + BODY(H1('This is a test document')+ TEXT('First line')+BR()+ TEXT('Second line'))) This will produce : <HTML> <HEAD> <TITLE>Test document</TITLE> </HEAD> <BODY> <H1>This is a test document</H1> First line <BR> Second line </BODY> </HTML> If the document is more complex it is more readable to create the elements first, then to print the whole result in one instruction. For example : stylesheet = LINK(rel="Stylesheet",href="doc.css") head= HEAD(TITLE('Record collection')+stylesheet) title = H1('My record collection') rows = Sum ([TR(TD(rec.title,Class="title")+TD(rec.artist,Class="Artist")) for rec in records]) table = TABLE(TR(TH('Title')+TH('Artist')) + rows) print HTML(head + BODY(title + table)) I will include this module in the next release, and I've re-written the records management demo using it, I find it much cleaner A bientot, Pierre |
From: Pierre Q. <que...@wa...> - 2005-01-20 20:53:06
|
Thanks Gabriele. Obviously, I put this on top of the to do list... A+, Pierre Gabriele Giorgetti a =E9crit : > Gabriele Giorgetti ha scritto: > >> Hi, I've noticed that the HTTP headers sent by Karrigell are very=20 >> minimal. >> Eg: The Content-Length is missing and if you download a file off=20 >> Karrigell its size is unkown. >> There are also problems with the pages cache... >> >> Here is some code which deals with HTTP headers:=20 > > > Also here's another link on the subject: > http://www.bluecypressmedia.com/mywiki/wakka.php?wakka=3DPythonMiniServ= er/edit=20 > > > Regards. |
From: NORA C. <nor...@gm...> - 2005-01-20 19:02:06
|
Hi Wish finding best pactice for multipage form at 3++ pages with over 100 Fields. (Framework Draco save all GET and POST variables in the database and rewrite forms self on reload) *Need Localized form labels with validation messages. ?experience. * Chers Nora |
From: Gabriele G. <g.g...@te...> - 2005-01-19 15:07:43
|
Gabriele Giorgetti ha scritto: > Hi, I've noticed that the HTTP headers sent by Karrigell are very > minimal. > Eg: The Content-Length is missing and if you download a file off > Karrigell its size is unkown. > There are also problems with the pages cache... > > Here is some code which deals with HTTP headers: Also here's another link on the subject: http://www.bluecypressmedia.com/mywiki/wakka.php?wakka=PythonMiniServer/edit Regards. |
From: Brian O. (M. Lists) <mai...@qi...> - 2005-01-19 15:00:16
|
On Wed, 2005-01-19 at 01:24, NORA CENTRAL wrote: > Hallo > > I wanted a framework that makes it much easier to implement the > processing for complicated/multipaged forms. > This Form Framework to be include widget classes that correspond to > the various HTML form elements: > * StringWidget (string): For entering a single line of text. > * TextWidget (text): For entering multi-line strings. > * PasswordWidget (password): Like StringWidget, but obscures > what's being typed. > * FileWidget (file): For uploading files. > * CheckboxWidget (checkbox): A single checkbox. > * SingleSelectWidget (single_select): A select box in which the > user can choose one item. > * MultipleSelectWidget (multiple_select): A select box in which > the user can choose several items. > * RadiobuttonsWidget (radiobuttons): A group of related radio > buttons. > * SubmitButtonWidget (submit_button): A submit button. > * HiddenWidget (hidden): A hidden form field that isn't shown to > the user. > * IntWidget (int): A text widget that returns an integer value. > * FloatWidget (float): A text widget that returns a float value. > Add several helper methods using sessionobject to render(), action(), > process() in workflow (next - submit - prev). > > For python exist some FormKit. Has anyone experience? Hello, I started something like this. I wanted to make it seem a little like ASP.NET's WebForms, at least in terms of API. I didn't complete it though ... it has been standing around for a few months untouched (until now). :-) I have to write validation tools and more controls. However, maybe this will help: http://toulouse.amber.org/archives/2003/09/03/python_form_and_validation_kits.html Out of the list, I used formlib, which is decent, but I think needs a little refactoring (this is why I started on my own project - to approach forms differently.) Brian |
From: Gabriele G. <gab...@te...> - 2005-01-19 13:50:31
|
Hi, I've noticed that the HTTP headers sent by Karrigell are very minimal. Eg: The Content-Length is missing and if you download a file off Karrigell its size is unkown. There are also problems with the pages cache... Here is some code which deals with HTTP headers: if ctype.startswith('text/'): mode = 'r' else: mode = 'rb' try: f = open(path, mode) except IOError: self.send_error(404, "File not found") return None try: s = os.stat(path) # the os.stat modified time should be local # mdt is only used for comparisons below now mdt = time.gmtime(s[8]) lastModified = date_time_string(s[8]) size = str(s[6]) except: mdt = None lastModified = None size = None ims = self.headers.getheader('if-modified-since') not_modified = 0 if ims and mdt: # items 6, 7, 8 of parsedate will be usable # so those aren't used in the comparison below # see http://www.python.org/doc/current/lib/module-rfc822.html sdt = rfc822.parsedate(ims.split(';')[0]) if mdt[:6] <= sdt[:6]: not_modified = 1 # don't send back a file if 304 f = None if not_modified: self.send_response(304) else: # note that send_response doesn't currently # accept an optional size parameter, so it can't # pass on the size to log_request # I've provided a backward-compatible version below that uses # a named argument self.send_response(200, size=size) if lastModified: self.send_header("Last-Modified", lastModified) if size: self.send_header("Content-Length", size) self.send_header("Content-type", ctype) CherryPy does handle HTTP headers correctly for example, so you may want to take a look at the sources. Regards. |
From: NORA C. <nor...@gm...> - 2005-01-19 06:25:22
|
Hallo I wanted a framework that makes it much easier to implement the processing for complicated/multipaged forms. This Form Framework to be include widget classes that correspond to the various HTML form elements: * StringWidget (string): For entering a single line of text. * TextWidget (text): For entering multi-line strings. * PasswordWidget (password): Like StringWidget, but obscures what's being typed. * FileWidget (file): For uploading files. * CheckboxWidget (checkbox): A single checkbox. * SingleSelectWidget (single_select): A select box in which the user can choose one item. * MultipleSelectWidget (multiple_select): A select box in which the user can choose several items. * RadiobuttonsWidget (radiobuttons): A group of related radio buttons. * SubmitButtonWidget (submit_button): A submit button. * HiddenWidget (hidden): A hidden form field that isn't shown to the user. * IntWidget (int): A text widget that returns an integer value. * FloatWidget (float): A text widget that returns a float value. Add several helper methods using sessionobject to render(), action(), process() in workflow (next - submit - prev). For python exist some FormKit. Has anyone experience? Cheers nora |
From: Gabriele G. <gab...@te...> - 2005-01-18 11:19:21
|
Pierre Quentel ha scritto: > I have worked on some demos using IncludeComponent(), and I realized > that it doesn't work if some components include other components. As I > tried to fix this, I found that there was no good solution ; I also > think that the parts of the code which deal with components are the > worst and most complex part of the code of Karrigell > > Perhaps it should be better to remove this component feature, only > keeping the Include() method. Would it be a problem for anyone ? I agree with you, all we need is the Include() method. ;-) Cheers. |
From: Pierre Q. <que...@wa...> - 2005-01-17 20:40:17
|
I have worked on some demos using IncludeComponent(), and I realized that it doesn't work if some components include other components. As I tried to fix this, I found that there was no good solution ; I also think that the parts of the code which deal with components are the worst and most complex part of the code of Karrigell Perhaps it should be better to remove this component feature, only keeping the Include() method. Would it be a problem for anyone ? Regards, Pierre |
From: Pierre Q. <que...@wa...> - 2005-01-12 21:21:49
|
As suggested by Andrew, I have opened a wiki page with a to-do list for Karrigell http://www.karrigell.cafewiki.org/index.php?ToDoList Feel free to add or comment items - and to volunteer for the development of items ! Regards, Pierre |
From: Jim E. <jim...@gm...> - 2005-01-10 09:31:18
|
One trick for running scripts as services under Windows is to create a scheduled task (see under the Control Panel.) If you use the schedule option 'At system startup' you can effectively run Karrigell as a service, or the 'At logon' option. You should uncheck the 'Stop task if it runs for:' option under Settings. To incorporate logging, it's probably best to write a small command file containing the text: python Karrigell.py > info.txt 2> access.log (as in Andrew's mail). e.g. save this as karrigell.cmd. Then call the command file from the scheduled task. Finally, create a local account for karrigell, and use this as the schedule task account. The account should only be granted permissions on the file system as required. Hope this helps. Cheers, Jim |
From: Andrew N. <an...@ni...> - 2005-01-09 23:34:19
|
Pierre Quentel wrote: > > How do i turn" python.exe Karrigell.py" output into log file. > (windows)? > > For the moment there is no logging facility in Karrigell. The messages > are printed to stderr and there is no way to redirect stderr to a file > with DOS. I'll put logging to a file in the to-do list You can log stdout and stderr in dos like *nix: python Karrigell.py 2> access.log Will log most output into access.log. I say most, since it logs some things to stdout such as "Karrigell running on port (whatever)". If you really do want all that, then: python Karrigell.py > info.txt 2> access.log Will do the job. |
From: Pierre Q. <que...@wa...> - 2005-01-09 20:11:18
|
NORA CENTRAL a =E9crit : > Hallo > > How do i turn Karrigell into a windows Service? (best Praktices= ) Apparently firedaemon (http://www.firedaemon.com/) can be used to turn=20 Python scripts into Windows services > How do i turn Karrigell into a IIS6 Virtual Domain Manager? =20 > (like Apache proxypass or rewrite-engine, i need some third party=20 > expensive software?) I don't know, sorry > How do i turn" python.exe Karrigell.py" output into log file. (windows)= ? For the moment there is no logging facility in Karrigell. The messages=20 are printed to stderr and there is no way to redirect stderr to a file=20 with DOS. I'll put logging to a file in the to-do list > I wrote a small homepages (extensive used sessionsobject, multipage =20 > Form and DB) with "Karrigell services" in ver 2.1, how do i use PIH =20 > & HIP feature in a one file .ks script? You can use the same features in Karrigell services as for Python=20 scripts - HTTP environment, form fields, custom exceptions, functions=20 for authentication, sessions, etc. Regards, Pierre |
From: Pierre Q. <que...@wa...> - 2005-01-09 19:41:25
|
I have released version 2.1.1 today, and posted an entry in the Python Package Index. I'll release the next version as soon as the problem with Apache on Linux is fixed, but I wanted to advertise the "karrigell service" new feature, and this release includes a number of bug fixes that couldn't wait too long The release notes are below : The main new feature in this release is the introduction of a new kind of scripts, called "Karrigell services" : Python scripts where the functions can be called by a specific URL. That is, the url foo.ks/bar gets the result of function bar() in the script foo.ks. A small website can be built with just one "ks" script, instead of having several separate files. See the documentation and the examples One of these examples is "kwiki" : it's like a wiki, you can edit the pages, but instead of the strange markup in a textarea, kwiki uses a wysiwyg text editor, the excellent FCKEditor I have also introduced a couple of demos using the excellent KirbyBase 100% Python flat-file database (demos wiki_KirbyBase and kwiki_KirbyBase). KirbyBase itself is not (yet) included in this release but can be downloaded at http://www.netpromi.com/kirbybase.html Other minor features have been added : - in dbStorage : a new mode 'c' for opening (creates the base if it doesn't exist) ; no information table is created before an object can be inserted - I have spent some time to make the presentation of the home page, of some demos (especially gadflyAdmin) and of the documentation nicer (well, hopefully) A couple of bug fixes too : - a file not found results in a HTTP 404 error - debug and silent options were not correctly handled - cookie management was bugged As usual, comments and bug reports will be welcome ! Regards, Pierre |
From: NORA C. <nor...@gm...> - 2005-01-07 11:28:23
|
Hallo How do i turn Karrigell into a windows Service? (best Praktices) How do i turn Karrigell into a IIS6 Virtual Domain Manager? (like Apache proxypass or rewrite-engine, i need some third party expensive software?) How do i turn" python.exe Karrigell.py" output into log file. (windows)? I wrote a small homepages (extensive used sessionsobject, multipage Form and DB) with "Karrigell services" in ver 2.1, how do i use PIH & HIP feature in a one file .ks script? Thanks for any hints. Nora |
From: Pierre Q. <que...@wa...> - 2004-12-14 21:37:00
|
Hi all, I've just released the version 2.1 of Karrigell There are two main new features in this release : 1. the introduction of a new kind of scripts, called "Karrigell services" : Python scripts where the functions can be called by a specific URL. A small website can be built with just one "ks" script, instead of having several separate files. See the documentation and the examples One of these examples is "kwiki" : it's like a wiki, you can edit the pages, but instead of the strange markup in a textarea, kwiki uses a wysiwyg text editor, the excellent FCKEditor 2. a beta version of persistence for session objects. If the "persistentSession" in the [Server] section of the configuration file is set, then all session objects will be store in a shelve file, instead of remaining in memory. Because of the rules that apply to serializing of Python objects, in this version only built-in types can be stored as attributes to the session object when the session is persistent. I have rewritten all the demos so that they work in all cases This is introduced to solve problems of session handling that occur with Apache on Linux, but I haven't a Linux machine so I couldn't test it ; may I ask all readers who have this configuration to test the persistent session option (you must change the option in Karrigell.ini to 1) and tell me if it works ? Other minor features have been added : - in dbStorage : a new mode 'c' for opening (creates the base if it doesn't exist) ; no information table is created before an object can be inserted - I have spent some time to make the presentation of the home page, of some demos (especially gadflyAdmin) and of the documentation nicer (well, hopefully) A couple of bug fixes too : - a file not found results in a HTTP 404 error - debug and silent options were not correctly handled Cordialement, Pierre |