|
|||||||
|
1. Introduction
2. Installation 3. Le serveur Web 4. Options de configuration 5. Travailler avec Apache, LightTPD ou Xitami 6. Programmation 7. Debogage 8. Scripts Python 9. Scripts CGI 10. Services Karrigell 10.1 Syntaxe 10.2 urls intelligentes 11. Python Inside HTML 12. HTML Inside Python 13. HTMLTags - génère du HTML en Python 14. Inclure des documents 15. Sessions 16. Authentification et gestion des utilisateurs 17. Traduction et Unicode 18. Résumé des noms intégrés |
10. Services Karrigell10.1 SyntaxeLes "services Karrigell" sont des scripts Python qui peuvent gérer en même temps plusieurs URL, ce qui permet de développer un service complet (plusieurs pages HTML distinctes) en un seul script Pour cela, les fonctions d'un service Karrigell sont associées à une URL : la
fonction Pour appeler Si aucune fonction n'est spécifiée, Karrigell cherche une fonction appelée
Notez que pour des raisons de sécurité et de lisibilité, seules les fonctions explicitement définies dans le script ks et dont la définition commence à la 1ère colonne du code source peuvent être appelées Si vous avez besoin de fonctions internes au script mais que vous ne voulez pas qu'on puisse les appeler par une url, faites-les commencer par un signe souligné (_) Pour "sauter" d'une fonction à l'autre, il suffit de spécifier le nom de la fonction dans un lien ou une action de formulaire :
Remarquez la première ligne de la fonction Tout l'environnement HTTP, les champs de formulaires, les exceptions spécifiques, les fonctions pour l'authentification, la gestion de sessions, etc. sont les mêmes que pour les scripts Python Voici un exemple de Service Karrigell simple :
10.2 urls intelligentesDans certains cas il peut être utile d'accéder à des fonctions de services Karrigell avec des urls qui précisent des paramètres additionnels. Par exemple, l'urlhtpp://path/service.ks/fonction/foo/bar?nom=martin appelerait la fonction
avec 'foo' et 'bar' comme paramètres
On peut les récupérer dans le script par un attribut de
Un problème avec ces "url intelligentes" est que s'il faut écrire un lien,
ou utiliser Pour cela vous pouvez utiliser une fonction intégrée, THIS.rel(), qui construit l'url correcte :
|