Introduction au Web Framework Karrigell pour Python


Télécharger Introduction au Web Framework Karrigell pour Python

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Introduction au Web Framework Karrigell pour Python

Framework Web Karrigell

Pour les besoins de ce livre, j'utiliserai un cadre simple combinant une bonne quantité de fonctionnalités à des fins d'apprentissage. Karrigell existe depuis de nombreuses années, mais je ne pense pas qu’il reçoive l’avis qu’il devrait recevoir. Ce qui m'a attiré à l'origine, c'est que cela permet au développeur de choisir comment écrire le programme sous-jacent. Vous pouvez créer votre code source de sept manières différentes, et vous pouvez mélanger et assortir à votre guise. Tous les éléments suivants sont expliqués plus en détail dans les styles de script Karrigell.

  1. Scripts Python: ce sont des scripts qui s'exécutent comme des programmes Python ordinaires, sauf que les instructions print vont dans la fenêtre du navigateur client plutôt que dans la console. Vous devrez écrire le code HTML pour tout ce qui sera visible par l'utilisateur.
  2. Services Karrigell: ce sont des scripts Python qui peuvent gérer plusieurs URL, ce qui permet de créer un service complet avec différentes pages HTML à l'aide d'un seul script. Celles-ci constituent également le mode de développement recommandé avec Karrigell.
  3. Python Inside HTML: comme son nom l'indique, il s'agit de documents HTML contenant des blocs de code Python. Ils sont fonctionnellement identiques aux sites PHP, Microsoft Active Server Pages ou Java Server Pages. C’est bien si vous venez d’un autre framework Web; vous pouvez toujours «écrire» comme vous êtes habitué, en ne modifiant que le code fonctionnel de PHP, par exemple, en Python.
  4. HTML à l'intérieur de Python: à l'inverse de ce qui précède, vous intégrez votre code HTML dans le reste du code Python. Ceci est particulièrement utile si vous écrivez beaucoup de sorties HTML. Plutôt que d'avoir à utiliser un certain nombre d'instructions print, vous pouvez simplement utiliser des guillemets Python standard pour générer ce que vous voulez. Karrigell comprendra ce que vous voulez et ajoutera les instructions d'impression au moment de l'exécution.
  5. HTMLTags: c'est un module Python qui définit une classe pour toutes les balises HTML valides. Lorsque vous imprimez la balise souhaitée dans le raccourci HTMLTag, Karrigell génère automatiquement le code HTML correct.
  6. Intégration du moteur de gabarit: si vous le souhaitez, vous pouvez utiliser divers moteurs de gabarit. Les moteurs de gabarits ressemblent beaucoup aux langages de programmation, en ce sens qu'ils permettent l'utilisation de variables, de fonctions, de remplacement de texte, etc. pour le traitement de texte brut. Pour l'essentiel, ils peuvent créer des pages Web dynamiques en extrayant des données d'une base de données ou d'un fichier source de modèle. XSLT est un exemple de modèle de modèle pour le traitement de fichiers XML.
  7. Modèles Karrigell: il s'agit d'un moteur de modèle intégré destiné à être utilisé avec les services Karrigell et les scripts Python. Il diffère des autres moteurs de templates en n'incluant pas la plupart des contrôles de programmation typiques, ceux-ci étant gérés directement par Python.

Il prend également en charge l'inclusion d'autres modèles, si vous le souhaitez.

23.2.1 Scripts Python

Étant donné que vous devez écrire manuellement toute la sortie HTML, vous devez évidemment connaître quelque chose à propos du HTML. Par exemple, pour créer un tableau simple, vous devez imprimer chaque ligne HTML dans votre script Python, comme indiqué ci-dessous:

Listing 23.1: Karrigell Python-> Table HTML

imprimer "<TABLE>"

imprimer "<TR>"

print "<TD> Nom </ TD>"

imprimer "<TD> Adresse </ TD>"

imprimer "</ TR>"

imprimer "</ TABLE>"

#Ou vous pouvez utiliser la syntaxe multi-iline de Python

print "" "<TABLE>

<TR>

<TD> Nom </ TD>

<TD> Adresse </ TD>

</ TR>

</ TABLE> "" "

23.2.2 Services Karrigell

Ce sont des scripts Python que Karrigell mappe pour séparer des URL; En gros, chaque script devient un nouveau site Web. C’est le moyen idéal d’écrire des applications Web pour Karrigell, car l’accès aux valeurs des utilisateurs est simple et la logique de l’application est centralisée. Essentiellement, chaque fonction est définie au niveau du module pour être mappée sur une URL. Les arguments peuvent être passés d'un script à un autre en tant qu'arguments «?» dans l'URL. Par exemple, le script nommé foo.ks contient la barre de fonctions () et se trouve à l'URL foo.ks / bar.



Le listing 23.2 apporte quelques éclaircissements:

Listing 23.2: les services Karrigell sous forme d'URL #Un site Web

<a h r e f =" s k r / p o o? bar=300">

#ou un formulaire Web, c’est

<former un c ti o n = "s c r i p t. ks / f o o">

<dans le nom = "bar">

<in type = "submit" = "ok">

#Les a s s o c i

def foo (bar):

barre d'impression

#Pour passer d'un message à un autre, vous êtes invité à le nommer

#in t e l i n k ou forme un c t i o n

def index ():

print "<a v e f ␣ =’ f o o? name = bar ’> allez-y ␣ foo </a>"

def f o o (nom):

print "<img␣s r c = ␣’.. / pi c. jp g ’>"

nom en lettres moulées

23.2.3 Python Inside HTML

Comme mentionné précédemment, incorporer Python dans HTML ressemble beaucoup à un développement avec PHP ou d'autres langages. Dans ce cas, le code Python est séparé du HTML avec des balises spéciales:. Tout ce qui sépare ces balises spéciales est du code Python normal. Vous pouvez donc importer des modules, créer des classes et des instances, utiliser le système de fichiers, etc. La liste 23.3 fournit un exemple:

Listing 23.3: Incorporer Python en HTML

23.2.4 HTML à l'intérieur de Python

L’incorporation de HTML dans du code Python est plus simple que l’inverse, car vous n’aurez pas à traiter les instructions print tout le temps. Inscription

23.4 montre les deux manières principales d’incorporer du HTML:

Listing 23.4: Incorporation de HTML dans Python

#Pour l 'HTML simplifié, l' utilité implicite q u t e s et non

import o s

currentDir = os. getcwd ()

"Répertoire actuel s i ␣ <b>" + c tér e tdi + "</ b>"

#Pour lle g rer HTML, utilisez Python pour en savoir plus.

the_Pythons = {’e e d ':' Graham␣Chapman ',

«Plus vieux»: «John␣ Cleese»,

«Américain»: «Terry ␣ Gilliam»,

’Musique’: ’Eric Idle’,

"Cerveaux": "Terry ␣ Jones",

«Écrivain»: «Michael Palin»}

"" "

<t a b l e b o r d e r = 1>

<t r b ackg r ou dd o vert = vert>

<td> L'un des comédiens est toujours là </ td>

</ t r>

</ t a b l e>

<table>

"" "

pour l'élément dans les_pythons. clés ( ):

"<t r> <td>% s </ td> <td>% s </ td> </ t r>"

% (item, the_Pythons [item])

"</ t a bl e>"

23.2.6 Intégration du moteur de modèle

Il n’ya pas grand-chose que je puisse dire sur les moteurs de modèles, à part que Karrigell Templates (KT) est un moteur intégré qui utilise Python pour la plupart des opérations de traitement. Cependant, vous pouvez utiliser KT pour inclure d'autres modèles et spécifier des chaînes de traduction, qui sont ensuite transmises au moteur de traduction Karrigell. Pour utiliser d'autres moteurs, il vous suffit d'utiliser la syntaxe nécessaire pour l'ajouter au script Python associé, comme pour un programme normal.



23.2.7 Modèles Karrigell

Les modèles Karrigell sont conçus pour être utilisés avec les services Karrigell et

Scripts Python. Un exemple de KT se trouve dans l'extrait 23.6.

Listing 23.6: Modèle Karrigell

<html>

<tête>

<link rel = "s t y es" href = "$ t h i s. b a s e u / c s s / my. c s s">

<title> MyApp $ data. t i t l e </ title>

</ head>

<body>

@ [$ data. bodytmpl]

<h>

<I> _ [Propulsé par K r r i g e l l] </ i>

<p />

</ body>

</ html>

Le corps contient la balise spéciale @ [$ data.bodytmpl], qui est en fait un appel à un autre modèle, qui contient simplement la ligne HTML <h1> Bienvenue dans la page d'accueil $ data.who! <H1>.

Si la configuration dans Karrigell est correcte (je n’ai pas montré le processus complet), lors de l’appel du modèle, il identifie la langue dans laquelle le navigateur de l’utilisateur est défini et fournit une sortie différente en fonction de la langue, comme indiqué dans le Listing 23.7.

Listing 23.7: Sortie HTML du modèle Karrigell

<! Navigateur configuré en anglais>

<html>

<tête>

<link rel = "s t y es" href = "/ c s s / my. c s s">

<title> Accueil MyApp </ title>

</ head>

<body>

<h1> Bienvenue sur ma page d'accueil! </ h1>

<h>

<I> Propulsé par K r r i g e l </ i>

<p />

</ body>

</ html>

<! Navigateur configuré en français>

<html>

<tête>

<link rel = "s t y es" href = "/ c s s / my. c s s">

<title> Accueil MyApp </ title>

</ head>

<body>

<h1> Bienvenue sur ma page d'accueil! </ h1>

<h>

<I> Motorisà © par K a r r i g e l l </ i>



1