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 “
< %<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 """
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Tecknet - %s</title>
</head>
<body>
%s
</body>
""" % (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
cyril — electronika.fr
le 01 septembre 2009 09:08Salut, 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 @+
Antoine — inaps.org
le 01 septembre 2009 12:53Il me semble que ton problème est résolu...
Laisser un commentaire