Karrigell, le serveur HTTP Python.

Karrigell est un serveur HTTP programmé et programmable en python. Il offre plusieurs types de programmation web, 4 pour étre précis. Deux se ressemble beaucoup, le Python inside HTML que l’on appelera PIH, et le HTML inside Python que l’on appelera HIP. Le Python in HTML ressemble à la programmation php avec les tags
, sauf que dans ce cas, on utilise les tags “< % %>“, exemple:

< %<br />
print "Hello, world !"<br />
%>

Le second utilise juste les doubles quôtes afin d’inserer du html dans un fichier python:
"Hello, world !"

Il est aussi possible d’executer un simple script python, la sortie standard est alors envoyée au client. Mais le plus interessant reste les services Karrigell, et puisqu’un bout de code vaux mieux qu’un long discourt:

<pre>def _pagecore(pagename,body):
       print """
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"&gt;
       &lt;head&gt;
               &lt;title&gt;Tecknet - %s&lt;/title&gt;
       &lt;/head&gt;
       &lt;body&gt;
               %s
       &lt;/body&gt;
""" % (pagename, body)
def index(name="Anonyme"):
       _pagecore("Hello, world !","Welcome %s" % (name))</pre>

Chaque fonction définie devient une page que l’on appel par l’url “http://server/script.ks/page”, les arguments de la fonction sont les arguments transmissibles à la page en “GET”. La fonction _pagecore() elle, n’est pas appelable par le serveur, juste par le script.

De plus, Karrigell rend plus facile d’accès tout pleins de machins cool, comme les cookies, les sessions, les données des formulaires, les uploads de fichiers par formulaire, l’authentification HTTP et l’internationalisation.

Le serveur permet aussi le débuggage, en fait, il est possible de l’activer ou de le désactiver au lancement du programme, quand il est actif et que le script python plante lorsqu’on l’appel dans le navigateur, une page indiquant l’erreur s’affiche, et un lien sur cette page mène à une autre page (normal :p) qui détaille encore plus l’erreur, en affichant le source du programme avec mise en evidence de l’erreur, et l’espace de nom du script.

A noté qu’il existe plusieurs version du serveur basées sur les modules python SocketServer, BaseHTTPServer et SimpleHTTPServer qui utilisent tout trois les sockets asyncrones, mais il existe aussi une version utilisant les threads.

Enfin, il existe un guide en francais (en fait, le developpeur est français) disponible à cette adresse, et le site de karrigell sur celle ci.

Commentaires

Avatar de cyril
cyril electronika.fr
le 01 septembre 2009 09:08

Salut, j'ai un problème avec karrigell, il semble qu'aprés avoir executé karrigel les pages de démo par exemple semble ne pas se charger, c'est aleatoire.J'ai laissé un message a ce suget ici (http://forum.ubuntu-fr.org/viewtopic.php?id=341043)

Merci @+

Avatar de Antoine
Antoine inaps.org
le 01 septembre 2009 12:53

Il me semble que ton problème est résolu...

Laisser un commentaire
:
:

Optionnel.

:

Ne sera pas publiée, elle est utile pour les Gravatars et la modération des commentaires.

:

Vous pouvez utiliser ces marqueurs : a, strong, em, pre, blockquote, abbr, acronym, et code. Les sauts de lignes et les liens sont automatiquement convertis.

:

Ce test permet de vérifier que vous n'êtes pas un (salaud de) robot de spam.


J'utilise Escaline 
!