OVH Cloud OVH Cloud

Annonce: Sortie de Karrigell version 2.2 beta

6 réponses
Avatar
Pierre Quentel
Bonjour,

Une nouvelle version de Karrigell vient de sortir :
http://karrigell.sourceforge.net

Karrigell est un framework de développement web, à la fois très simple à
mettre en oeuvre (téléchargez, dézippez, c'est prêt !) et offrant de
nombreuses fonctionnalités : accès facile aux données de formulaires et
à l'environnement HTTP, fonctions pour l'authentification HTTP et la
gestion de session, hôtes virtuels, un débogueur très explicite, etc

On peut écrire des scripts en plusieurs styles selon ses préférences :
du pur Python, des scripts à la PHP avec le programme entre balises <%
et %>, ou des "services Karrigell" qui sont des scripts Python où chaque
fonction est associée à une URL, ce qui permet de réaliser un service
complet de plusieurs pages avec un seul script. Dans cette version un
premier niveau de support du moteur de templates Cheetah est aussi fourni

Pour faciliter le démarrage, il est livré avec un serveur web intégré
(en l'occurrence un serveur asynchrone stable et performant) et une base
de données, KirbyBase (évidemment !). Ceci devrait suffire pour des
applications petites ou moyennes ; bien entendu, on peut aussi
l'utiliser derrière Apache et avec la base de données qu'on veut

Il est fourni avec de nombreux exemples, plusieurs programmes complets
(un wiki, un calendrier, un forum, et une espèce de wiki où les pages
sont éditées en wysiwyg avec FCKEditor) ; la documentation est très
fournie, et en français of course !

Karrigell a été pris comme exemple de framework web dans le livre de
Gérard Swinnen chez O'Reilly : Apprendre à programmer avec Python. Il
est aussi pris en charge par python-hosting.com, vous pouvez voir mon
site à l'adresse http://quentel.python-hosting.com, il y a toutes les
démos en ligne

Vos avis sont les bienvenus !

Cordialement,
Pierre

6 réponses

Avatar
William Dode
On 31-10-2005, Pierre Quentel wrote:
Bonjour,

Une nouvelle version de Karrigell vient de sortir :
http://karrigell.sourceforge.net

...


Vos avis sont les bienvenus !


Maintenant que l'on n'entend plus parler que de cherrypy, peux-tu nous
en dire plus sur les différences de ces deux projets, et qu'est-ce qui
empêche un rapprochement éventuel des deux ?

--
William Dodé - http://flibuste.net

Avatar
Pierre Quentel

Maintenant que l'on n'entend plus parler que de cherrypy, peux-tu nous
en dire plus sur les différences de ces deux projets, et qu'est-ce qui
empêche un rapprochement éventuel des deux ?



On parle aussi pas mal de Zope, de Webware, de Django, de Snakelets...
Le choix est vaste, sans doute trop pour les débutants, mais c'est assez
inévitable, chacun croit trouver une meilleure idée que les précédents,
et c'est tellement facile de développer en Python qu'on met vite son
idée en oeuvre et qu'on la publie

Quand j'ai commencé Karrigell il y a 3 ans j'avais regardé Zope et
Webware - trop compliqué pour moi - et PMZ (Poor Man's Zope, le Zope du
pauvre) que j'aimais bien, mais son auteur avait laissé tomber. Mon idée
de départ c'était de faire pour le développement web ce que Python fait
pour le développement en général : ce qui est simple doit se faire
simplement

Vous savez sans doute écrire le programme "Hello world" en Java et en
Python : une demi-douzaine de lignes en Java (création d'une classe
obligatoire), une ligne en Python : print "Hello world"

Avec Karrigell, c'est pareil : sous sa forme la plus simple (un script
Python) le programme s'écrit en une ligne :

print "Hello world!"

Avec CherryPy :

from cherrypy import cpg

class HelloWorld:
def index(self):
return "Hello world!"
index.exposed = True

cpg.root = HelloWorld()
cpg.server.start()

Ca vous donne une idée de la différence de style. Je ne sais pas comment
on gère les sessions en CherryPy mais avec Karrigell vous manipulez un
objet disponible dans l'espace de noms du script au moment de son
exécution :

so = Session()
so.user = user

Par ailleurs, les fichiers CherryPy sont faits pour être exécutés et
c'est leur exécution qui lance le serveur web ; avec Karrigell, on lance
un serveur par python Karrigell.py et les scripts sont exécutés à la
volée quand on appelle l'url qui correspond au script

La différence de modèle est telle que je ne vois vraiment pas comment
faire converger les deux. J'ai reçu de l'aide de Rémi Delon (l'auteur de
CherryPy et gestionnaire du site python-hosting) pour la gestion d'un
site Karrigell sur un serveur Apache, mais ça se limite là

De toutes façons, essayez toujours de convaincre l'auteur d'un projet
Open Source de fusionner avec un autre : vu de l'extérieur ça peut
paraître jouable, quand on est en plein dedans c'est presque impossible,
à moins de rencontrer une indifférence totale - ce qui n'est quand même
pas le cas de mon programme, même si je reconnais qu'il n'est pas le
plus connu, moins que CherryPy en tout cas

Cordialement,
Pierre

Avatar
William Dode
On 31-10-2005, Pierre Quentel wrote:

Maintenant que l'on n'entend plus parler que de cherrypy, peux-tu nous
en dire plus sur les différences de ces deux projets, et qu'est-ce qui
empêche un rapprochement éventuel des deux ?



On parle aussi pas mal de Zope, de Webware, de Django, de Snakelets...
Le choix est vaste, sans doute trop pour les débutants, mais c'est assez
inévitable, chacun croit trouver une meilleure idée que les précédents,
et c'est tellement facile de développer en Python qu'on met vite son
idée en oeuvre et qu'on la publie


J'ai également mon petit framework web perso, c'est pour ça que je te/me
pose la question !...

Sans parler de fusion, est-ce qu'il ne serait pas possible de soit
réutiliser des composants (avec wsgi ? paste?) soit de s'assoir dessus, comme
le font certains sur cherrypy (ou inversement) ?

Il me semble que les grandes différences et ce qui fait l'intérêt d'un
framework web c'est la partie interface avec le programmeur, comme tu
le décrit, une ligne pour afficher "hello world" au lieu d'une dizaine.
Mais toute la partie interne, serveur, sessions, authentification,
extraction des parametres etc. sont semblables à un moment ou un autre.

Bref, question : est-ce que tu penses que l'effort wsgi va aider à la
fois les développeurs de framework et les développeurs finaux ?


Quand j'ai commencé Karrigell il y a 3 ans j'avais regardé Zope et
Webware - trop compliqué pour moi - et PMZ (Poor Man's Zope, le Zope du
pauvre) que j'aimais bien, mais son auteur avait laissé tomber. Mon idée
de départ c'était de faire pour le développement web ce que Python fait
pour le développement en général : ce qui est simple doit se faire
simplement

Vous savez sans doute écrire le programme "Hello world" en Java et en
Python : une demi-douzaine de lignes en Java (création d'une classe
obligatoire), une ligne en Python : print "Hello world"

Avec Karrigell, c'est pareil : sous sa forme la plus simple (un script
Python) le programme s'écrit en une ligne :

print "Hello world!"

Avec CherryPy :

from cherrypy import cpg

class HelloWorld:
def index(self):
return "Hello world!"
index.exposed = True

cpg.root = HelloWorld()
cpg.server.start()

Ca vous donne une idée de la différence de style. Je ne sais pas comment
on gère les sessions en CherryPy mais avec Karrigell vous manipulez un
objet disponible dans l'espace de noms du script au moment de son
exécution :

so = Session()
so.user = user

Par ailleurs, les fichiers CherryPy sont faits pour être exécutés et
c'est leur exécution qui lance le serveur web ; avec Karrigell, on lance
un serveur par python Karrigell.py et les scripts sont exécutés à la
volée quand on appelle l'url qui correspond au script

La différence de modèle est telle que je ne vois vraiment pas comment
faire converger les deux. J'ai reçu de l'aide de Rémi Delon (l'auteur de
CherryPy et gestionnaire du site python-hosting) pour la gestion d'un
site Karrigell sur un serveur Apache, mais ça se limite là

De toutes façons, essayez toujours de convaincre l'auteur d'un projet
Open Source de fusionner avec un autre : vu de l'extérieur ça peut
paraître jouable, quand on est en plein dedans c'est presque impossible,
à moins de rencontrer une indifférence totale - ce qui n'est quand même
pas le cas de mon programme, même si je reconnais qu'il n'est pas le
plus connu, moins que CherryPy en tout cas

Cordialement,
Pierre



--
William Dodé - http://flibuste.net


Avatar
NicolasP
Bonjour,

Perso ça m'intéresserait mais le seul site que je développe (à la maison) est hébergé par Free. Donc pas de Python. Php et MySQL obligatoires.
J'utilise quand même KirbyBase dans un projet perso à la maison. Si Karrigell est dans la même veine, ca doit être bien.

Nicolas

Bonjour,

Une nouvelle version de Karrigell vient de sortir :
http://karrigell.sourceforge.net

Karrigell est un framework de développement web, à la fois très simple à
mettre en oeuvre (téléchargez, dézippez, c'est prêt !) et offrant de
nombreuses fonctionnalités : accès facile aux données de formulaires et
à l'environnement HTTP, fonctions pour l'authentification HTTP et la
gestion de session, hôtes virtuels, un débogueur très explicite, etc

On peut écrire des scripts en plusieurs styles selon ses préférences :
du pur Python, des scripts à la PHP avec le programme entre balises <%
et %>, ou des "services Karrigell" qui sont des scripts Python où chaque
fonction est associée à une URL, ce qui permet de réaliser un service
complet de plusieurs pages avec un seul script. Dans cette version un
premier niveau de support du moteur de templates Cheetah est aussi fourni

Pour faciliter le démarrage, il est livré avec un serveur web intégré
(en l'occurrence un serveur asynchrone stable et performant) et une base
de données, KirbyBase (évidemment !). Ceci devrait suffire pour des
applications petites ou moyennes ; bien entendu, on peut aussi
l'utiliser derrière Apache et avec la base de données qu'on veut

Il est fourni avec de nombreux exemples, plusieurs programmes complets
(un wiki, un calendrier, un forum, et une espèce de wiki où les pages
sont éditées en wysiwyg avec FCKEditor) ; la documentation est très
fournie, et en français of course !

Karrigell a été pris comme exemple de framework web dans le livre de
Gérard Swinnen chez O'Reilly : Apprendre à programmer avec Python. Il
est aussi pris en charge par python-hosting.com, vous pouvez voir mon
site à l'adresse http://quentel.python-hosting.com, il y a toutes les
démos en ligne

Vos avis sont les bienvenus !

Cordialement,
Pierre


Avatar
Pierre Quentel


J'ai également mon petit framework web perso, c'est pour ça que je te/me
pose la question !...

Sans parler de fusion, est-ce qu'il ne serait pas possible de soit
réutiliser des composants (avec wsgi ? paste?) soit de s'assoir dessus, comme
le font certains sur cherrypy (ou inversement) ?

Il me semble que les grandes différences et ce qui fait l'intérêt d'un
framework web c'est la partie interface avec le programmeur, comme tu
le décrit, une ligne pour afficher "hello world" au lieu d'une dizaine.
Mais toute la partie interne, serveur, sessions, authentification,
extraction des parametres etc. sont semblables à un moment ou un autre.

Bref, question : est-ce que tu penses que l'effort wsgi va aider à la
fois les développeurs de framework et les développeurs finaux ?



Je n'ai pas passé des heures à regarder WSGI mais j'avoue que je ne vois
pas bien l'utilité. Ce qui est standardisé est l'interface entre le
serveur HTTP et le serveur d'application ; ce ne serait sans doute pas
sorcier de rendre Karrigell compatible avec WSGI mais je ne vois pas
bien à quoi ça m'avancerait (si vous avez un avis contraire n'hésitez pas !)

Vu des utilisateurs du framework (les programmeurs) WSGI n'apporte rien,
et c'est pourtant là qu'une standardisation serait utile. Notamment,
avoir un seul format pour la programmation "à la PHP" (le code entre
balises <% et %>) : il y en a plusieurs variantes, une seule suffirait,
pour que le même code puisse tourner sur plusieurs frameworks

Finalement, la seule chose qui est standardisée dans la programmation
web c'est le CGI, avec un seul module livré dans la distribution
standard et l'utilisation de FieldStorage. A mon avis la seule solution
d'avancer vers une standardisation vu du programmeur serait d'intégrer
un squelette de serveur d'application dans la distribution standard.
J'avais publié une recette dans le Python Cookbook pour aller dans ce
sens : http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/392879
mais ça n'a rien donné ; toutes les discussions sur le sujet sur
c.l.python aboutissent à la conclusion que ce serait souhaitable mais
que ça n'arrivera jamais

Cordialement,
Pierre

Avatar
R12y
On Wed, 02 Nov 2005 22:47:01 +0100, Pierre Quentel wrote:

toutes les discussions sur le sujet sur
c.l.python aboutissent à la conclusion que ce serait souhaitable mais
que ça n'arrivera jamais


Le genre de truc "forker python en en faisant juste un rsync journalier de
leurs sources et en rajoutant la fonctionalité souhaitée à notre fork" ne
peut pas fonctionner dans ce cas?

--
Rakotomandimby Mihamina,
http://aspo.rktmb.org/activites/infogerance
Serveurs* sous Debian, Fedora...
(*) Serveurs!?: http://fr.search.yahoo.com/search?p=serveurs+dedies