Karrigell

Karrigell

Karrigell est un canevas (framework) de développement web écrit en Python très simple d'utilisation.

À l'inverse d'autres frameworks écrits en Python, il ne nécessite pas d'apprendre un « meta-langage », car il reste très proche de la syntaxe python. Le code est donc simple à écrire et facile à maintenir.

Karrigell intègre un serveur web très efficace, mais il peut aussi travailler derrière d'autres serveurs web (Apache, Lighttpd et Xitami...).

Les bases de données courantes (sqlite, MySql, PostGresQL, etc.) peuvent être utilisées, cependant Karrigell inclut la base Buzhug, écrite par l'auteur, dans le même esprit que Karrigell.

Sommaire

Intérêt de Karrigell

Tout comme le PHP, Karrigell permet d’intégrer des scripts python à l’intérieur d’un document html en utilisant les symbole "<%" … "%>". Mais on peut également inclure du code HTML dans des scripts python.

Karrigell permet également de créer des sites d'une seule pièce, avec un service Karrigell (fichier .ks) dont les fonctions sont considérées comme des pages. Les fonctions dont le nom commencent par '_' sont privées.

L'utilisation du "karrigell service" (.ks) permet cependant d'avoir une certaine logique d'application dans un seul script. En outre, il est tout à fait possible d'inclure des scripts, ou des modules afin d'améliorer la lisibilité du script.

Karrigell offre un puissant système de template nommé cheetah http://www.cheetahtemplate.org/ et propose un module HTMLTags pour des balises HTML valides.

Installation de Karrigell

Décompresser le fichier que vous avez téléchargé (au format .zip, .tgz ou .tar.bz2) dans un répertoire tel que /home/myname/karrigell puis se placer dans le répertoire Karrigell-2.4.0.

Ouvrez une fenêtre console (un terminal), mettez-vous dans le Karrigell-2.4.0 (cd /home/myname/karrigell/Karrigell-2.4.0) et exécutez :

python Karrigell.py 

Vous devriez voir apparaître le message :

Karrigell 2.4.0 running on port 80
Type Ctrl+C to stop 

Configuration de Karrigell, mon premier site

Pour tester les exemples suivants, créons le repertoire "monsite" de notre site dans Karrigell-2.4.0/webapps/monsite

Puis se placer dans Karrigell-2.4.0/conf/ et ouvrir le fichier Karrigell.ini

Modifier les variables :


[Directories]

root = /home/myname/karrigell/Karrigell-2.4.0/webapps/monsite

[VirtualHost monsite.net]

root = /home/myname/karrigell/Karrigell-2.4.0/webapps/monsite

[Server]

port=8081


Ainsi lorsqu'on relancera le serveur, dans le terminal :

python Karrigell.py 

Il affichera:

Karrigell 2.4.0 running on port 8081
Type Ctrl+C to stop 

Il suffit alors de se connecter en localhost via le navigateur: http://localhost:8081

Exemple de script python dans un document HTML

Dans le répertoire "monsite", créer un fichier index.html

<h1>
La date courante est:
<%
import time
print time.strftime("%d:%m:%y",time.localtime(time.time()))
%>
</h1>

Puis avec le navigateur : http://localhost:8081

Exemple de code HTML dans un script Python

Dans le répertoire "monsite", créer un fichier index.py

telephone={'guitare - chant':'Jean-Louis Aubert',
    'guitare':'Louis Bertignac',
    'basse':'Corinne Marienneau',
    'batterie':'Richard Kolinka'}
"""
<table border=1>
<tr backgroundcolor=green>
<td>Le plus grand groupe français</td>
</tr>
</table>
<table>
"""
for item in telephone.keys():
    print "<tr><td>%s</td><td>%s</td></tr>" %(item,telephone[item])
"</table>"

Puis avec le navigateur : http://localhost:8081

Exemple de script Karrigell Service

Dans le répertoire "monsite", créer un fichier index.ks dans lequel on inclut le code suivant :

def index():
   print '<a href="page1?nom=bar">Aller vers foo</a>'
   
def page1(nom):
   print '<IMG src="picture.jpg">'
   print nom

Puis avec le navigateur : http://localhost:8081

Exemple d'importation de module dans un script Karrigell Service

Dans le répertoire "monsite", créer un fichier conf.cfg, un script index.ks, et un script maconfig.py qui sera le module.

Le fichier conf.cfg :

[DEFAULT] 
# Chemin par défaut où sera installée la base buzhug.                   
# Décommenter pour activer la variable de configuration 
# path = /tmp/test                      
path = /home/monpseudo/karrigell/webapps/monsite/mabase/

le script index.ks

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

import os, sys
from maconfig import Konfig

def index():
        maconfig = Konfig()
        print maconfig.lire_chemin_base_config()

Le module maconfig.py:

#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

from ConfigParser import *
import os

class Konfig (object):
        """
        Objectif: Lire le fichier de configuration et renvoyer son contenu.
        usage :
        x.lire_chemin_base_config()
        """
        
        def lire_chemin_base_config(self):
                """
                Renvoie la valeur de path du fichier de configuration
                """
                # tester si le fichier existe et le lire. Renvoi le résultat
                if os.path.exists('conf.cfg'):
                        configdict = ConfigParser()
                        configdict.read('conf.cfg')
                        self.path = configdict.defaults()['path']
                        
                        return self.path

Karrigell Intègre

  • Un serveur web
  • Implémentation d'un mécanisme d'authentification et de gestion des utilisateurs
  • Des sessions
  • Accès facile aux données d'environnement, formulaires et base de données (Buzhug)
  • Moteur de template Cheetah

Extensions

La liste exclut les extensions normalement prises en charge par un serveur
  • .hip : HTML Inside Python
  • .pih : Python Inside HTML
  • .py : Fichier Python/ironpython
  • .ks : "Karrigell service" = script Python dans lequel les fonctions sont associées à une URL

Voir aussi

Liens internes

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Karrigell de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • Karrigell — Infobox Software name = Karrigell developer = Pierre Quentel latest release version = 2.4.0 latest release date = release date|2008|04|12 genre = Web application framework license = BSD License programming language = Python genre = Web… …   Wikipedia

  • Buzhug — est un système de base de données rapide, écrit en pur Python, y compris le langage de requête, écrit par le même auteur que Karrigell et licencié sous licence BSD. Buzhug permet d être utilisé pour des applications de taille moyenne. Sommaire 1… …   Wikipédia en Français

  • Список CMF — Это список CMF  каркасных систем для управления содержимым (в основном, содержимым сайтов). Как правило, на основе CMF создаются CMS  готовые системы управления содержимым, а те, в свою очередь, служат основой для создания полноценных… …   Википедия

  • Использование Python — Python  стабильный и распространённый язык. Он используется во многих проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений. На Python реализовано большое количество проектов …   Википедия

  • Список программного обеспечения, написанного на языке программирования Python — Python  стабильный и распространённый язык. Он используется во многих проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений. На Python реализовано большое количество проектов …   Википедия

  • Web application framework — A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services. The framework aims to alleviate the overhead associated with common activities used in Web… …   Wikipedia

  • List of web application frameworks — This is a list of notable web application frameworks, used for creating web applications. Client side ActionScript * Cairngorm * PureMVCJavaScript* Backbase * CJAX * Clean AJAX * Dojo Toolkit * Echo * Ext * [http://www.gapjumper.com/ Gapjumper] * …   Wikipedia

  • Ankou —  Pour l’article homonyme, voir L Ankou (Spirou et Fantasio).  Ankou, dans La Roche Maurice, Finistère Personnage revenant souvent dans la tradition orale et les contes …   Wikipédia en Français

  • Ankoù — Ankou  Pour l’article homonyme, voir L Ankou (Spirou et Fantasio).  Ankou, dans La Roche Maurice, Finistère Personnage revenant souvent dans la …   Wikipédia en Français

  • Langage Python — Python (langage) Pour les articles homonymes, voir Python. Python …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”