Débuter avec le Framework Spyce pour Python Cours PDF


Télécharger Débuter avec le Framework Spyce pour Python Cours PDF

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

Télécharger aussi :


Débuter avec le Framework Spyce pour Python Cours PDF

  1. INTRODUCTION

Ce document se veut une source d’information faisant autorité sur Spyce, pouvant être utilisé comme référence complète, guide de l’utilisateur et didacticiel. Il doit au moins être écrémé du début à la fin, afin que vous ayez au moins une idée de la fonctionnalité disponible et que vous puissiez vous y reporter pour plus de détails, si nécessaire.

Spyce est un langage côté serveur qui prend en charge une génération HTML dynamique élégante et efficace basée sur Python. Spyce permet d’intégrer Python dans des pages similaires à celles de JSP, mais Spyce est bien plus qu’un clone JSP. Hors de la boîte, Spyce fournit un développement aussi rapide que d’autres frameworks modernes tels que Rails, mais avec une conception cohérente plutôt qu’un fouillis de cas particuliers.

La conception modulaire de Spyce le rend très flexible et extensible. Il peut également être utilisé comme utilitaire de ligne de commande pour le prétraitement de texte statique ou comme proxy de serveur Web.

Les performances de Spyce sont comparables à celles des autres solutions de sa catégorie.

Remarque: Ce manuel suppose une connaissance de Python et se concentre exclusivement sur Spyce. Si vous ne connaissez pas encore Python, il est facile à apprendre avec ce court tutoriel et dispose d'une documentation complète.

1.1. Analyse raisonnée / concurrentielle

Cette section est un peu datée. Nous prévoyons de le mettre à jour bientôt.

Une question naturelle à se poser est de savoir pourquoi on choisirait Spyce plutôt que JSP, ASP, PHP ou l’un des autres langages de script HTML exécutant une fonction similaire. Nous comparons Spyce à un éventail d’outils existants:

  • JSP, Java Server Pages, est une solution largement répandue, efficace et bien prise en charge, basée sur la technologie Java Servlet. Spyce diffère de JSP en ce sens qu’il incorpore du code Python au HTML, offrant ainsi de nombreux avantages par rapport à Java.

o Python est un langage de script de haut niveau, dans lequel le prototypage rapide est syntaxiquement plus facile à réaliser.

o Il n’est pas nécessaire de créer une "langue d’expression" distincte dans Spyce; Python est bien adapté aux modules plus importants et aux scripts de balises actifs.

o Python est interprété et typé de manière latente, ce qui peut être avantageux pour le prototypage, en particulier pour éviter toute incompatibilité binaire inutile des classes lors de modifications mineures.

o Le code Spyce est de premier ordre dans le langage Spyce, contrairement à JSP, qui vous permet de créer des fonctions utiles Spyce lambda.

o La création de nouveaux tags et modules actifs est plus simple dans Spyce que dans JSP.

o Spyce est mieux intégré que JSP; Pour obtenir des fonctionnalités similaires dans JSP, vous devez ajouter JSF (Java Server Faces) et Tiles, ou des équivalents.

  • PHP est un autre module de serveur Web populaire pour la génération de contenu dynamique. Le moteur d'interprétation PHP et le langage lui-même ont été explicitement conçus pour la génération dynamique de code HTML, tandis que Python est un langage de script à usage général.

o Spyce tire parti des efforts de développement considérables déployés par Python: étant donné qu’une bibliothèque Python peut être importée et réutilisée, Spyce n’a pas besoin de reconstruire de nombreuses bibliothèques de fonctions principales mises en œuvre par le projet PHP.

o L’utilisation de Python simplifie souvent l’intégration de Spyce aux environnements système existants.

o Le code Spyce est également de premier ordre dans le langage Spyce et Spyce prend en charge les balises actives.

o Spyce est modulaire dans sa conception, ce qui permet aux utilisateurs d’étendre facilement la fonctionnalité de sa base avec des modules complémentaires.

o Le moteur Spyce peut être exécuté à partir de la ligne de commande, ce qui permet d’utiliser Spyce en tant que préprocesseur HTML.

Spyce, comme PHP, peut fonctionner entièrement dans l'espace processus d'un serveur Web ou via CGI (ainsi que d'autres adaptateurs de serveur Web), et a été conçu pour offrir des performances concurrentielles.

  • ASP.NET est une technologie Microsoft répandue parmi les utilisateurs de Microsoft Internet Information Server (IIS). Visual Basic .NET et C # sont deux langages d'implémentation populaires.

o Spyce offre toute la puissance du style de développement de "composant" ASP.NET sans prétendre que les applications Web évoluent dans un environnement dynamique, basé sur les événements. Il s’agit d’une abstraction qui fuit qui donne à ASP.NET une courbe d’apprentissage abrupte pendant que l’utilisateur découvre où se trouvent les aspérités.

o ASP.NET n'est pas bien pris en charge en dehors de l'environnement IIS. Spyce peut actuellement fonctionner en tant que serveur autonome ou proxy, sous mod_python (Apache), ou sous CGI et FastCGI, qui sont pris en charge dans la majorité des environnements de serveur Web. Des adaptateurs ont également été écrits pour Xitami, Coil, Cheetah - d'autres serveurs Web et frameworks.

o Spyce est open-source et gratuit.

  • WebWare avec Python Server Pages, PSP, est un autre développement open source basé sur Python. La conception de PSP est similaire à celle du langage Spyce et partage bon nombre des mêmes avantages. Quelques différences importantes incluent

o Spyce prend en charge les fragments Python (Python en retrait) ainsi que les instructions de type PSP (Python avec contreventement).



o Spyce prend en charge les balises actives et le développement à base de composants

o Le code Spyce est de premier ordre dans le langage Spyce

PSP fait également partie intégrante de WebWare, une infrastructure de serveur d’application similaire au serveur d’applications Tomcat Java du projet Apache Jakarta. Spyce est destiné à WebWare, tandis que JSP est destiné à Tomcat. Spyce est beaucoup plus simple à installer et à utiliser que WebWare (selon l'opinion modeste de l'auteur) et n'implique aucune notion telle que les contextes d'application. Son objectif est de ne faire qu'une chose: fournir un préprocesseur et un moteur d'exécution pour la génération dynamique de HTML à l'aide de Python intégré.

  • Zope est un serveur d'applications open source orienté objet, spécialisé dans "la gestion de contenu, les portails et les applications personnalisées". Zope est l'environnement de développement d'applications Web Python le plus mature, mais souffre dans une large mesure d'un syndrome de second système. Selon l'auteur, Zope est en grande partie responsable du grand nombre d'environnements Web python: il y a quelques années, il était de rigueur pour les programmeurs talentueux d'essayer Zope, de se rendre compte que c'était un désordre et de commencer à écrire leurs propres cadre.

Zope fournit un langage de script appelé DHTML et peut appeler des extensions écrites en Perl ou Python. Spyce intègre Python directement dans le code HTML, et uniquement Python. C'est un langage HTML, pas un serveur d'applications.

Spyce établit un équilibre unique entre puissance et simplicité. De nombreux utilisateurs ont déclaré que c'était "exactement ce qu'ils attendaient". J'espère que c'est également le bon point dans l'espace de conception de votre projet.

1.2. Objectifs de conception

En tant qu'utilisateur de Spyce, il est utile de comprendre les objectifs de conception généraux de cet outil. Spyce est conçu pour être:

  • Minimaliste: la conception de Spyce n’a pour objectif que d’inclure des fonctionnalités qui améliorent particulièrement ses fonctionnalités par rapport à la richesse déjà disponible dans Python. On peut facilement importer et utiliser des modules Python pour de nombreuses fonctions, et il n’est pas nécessaire de recoder de grands corps de fonctionnalités.
  • Puissant: Spyce vise à libérer le programmeur des tâches fastidieuses du type "plomberie" grâce à des fonctionnalités telles que les gestionnaires actifs et les balises actives réutilisables.
  • Modulaire: Spyce est conçu pour être étendu avec des modules Spyce et des balises actives qui offrent des fonctionnalités supplémentaires par rapport aux capacités du moteur principal et aux modules Python standard. Les nouvelles fonctionnalités du moteur principal et du langage sont rationalisées par rapport à la possibilité de créer un nouveau module ou une nouvelle bibliothèque de balises. Les modules et bibliothèques de balises Spyce standard sont ceux qui sont considérés utiles dans un contexte général et sont inclus dans la distribution Spyce par défaut. Les utilisateurs et les tiers sont invités à développer leurs propres modules Spyce.
  • Intuitif: obéissez aux attentes des utilisateurs. Une partie de cela consiste à éviter les cas spéciaux.
  • Pratique: l’utilisation de Spyce doit être aussi efficace que possible. C'est, par exemple, la raison qui a motivé le choix de [[en tant que délimètres par rapport à des alternatives telles que <? (php) et <% (jsp). (Toutefois, les délimètres de style ASP / JSP sont également pris en charge. Si vous êtes habitué à ce style et aimez ce style, n'hésitez pas à continuer à l'utiliser avec Spyce.) Les fonctions et les modules sont également conçus avec autant de valeurs par défaut que possible. Spyce ne contient aucun fichier de configuration XML.
  • Un seul usage: être le meilleur, le plus polyvalent et le plus populaire des moteurs HTML dynamiques basés sur Python. Rien de plus; rien de moins.
  • Rapide: la performance est importante. Spyce devrait fonctionner de manière comparable à toute autre solution de script dynamique disponible.

Maintenant, commençons à utiliser Spyce ...

  1. LANGUE

La structure de base d'un script Spyce est un fichier HTML avec des incorporations. Il existe six types d’embeddings possibles parmi le texte HTML brut:

  • <taglib: name attr1 = val1 ...>

Les balises actives peuvent inclure une présentation et un code d’action.

  • [[- Spyce comment -]]

Le code inclus est éliminé de la classe Spyce compilée.

  • [[\ morceau Python]]

Intégrez python dans votre code.

  • [[! Morceau de classe Python]]

Comme des morceaux, mais au niveau de la classe plutôt que de la méthode spyceProcess.

  • [[déclaration (s) Python]]

Comme des morceaux, mais peuvent inclure des accolades pour indiquer que le bloc doit continuer après le]].

  • [[= expression Python]]

Affiche le résultat de l'évaluation de l'expression donnée.

  • [[. Directive Spyce]]

Passer des options au compilateur Spyce.

  • [[espion lambda]]

Permet la compilation dynamique de code Spyce en fonction Python.

Chaque type de balise Spyce a un délimiteur de début unique, à savoir [[, [[\, [[=, [[. ou [[--. Toutes les balises se terminent par]], à l'exception des balises de commentaire, qui se terminent par -]].



Puisque [[et]] sont des délimiteurs spéciaux de Spyce, on les échapperait en tant que \ [[et \]] pour les utiliser en texte HTML. Ils ne peuvent pas être échappés dans le code Python, mais les expressions de chaîne ("[" * 2) et ("]" * 2), ou des expressions équivalentes, peuvent être utilisées à la place, ou les crochets peuvent être séparés de manière pratique par un espace dans le champ. cas de liste ou d'expressions tranchées.

2.1. HTML simple et balises actives

Les chaînes HTML statiques sont imprimées au fur et à mesure qu'elles se rencontrent. Selon le mode de compactage du compilateur Spyce, certains espaces peuvent être éliminés. Le module de transformation Spyce, par exemple, peut en outre prétraiter cette chaîne en insérant des transformations dans le canal de sortie. Ceci est utile, par exemple, pour la compression dynamique du résultat du script.

Le langage Spyce prend en charge les bibliothèques de balises. Une fois qu'une bibliothèque de balises est importée sous un nom, mytags, toutes les balises HTML statiques de la forme <mytags: foo ...> deviennent "actives". C'est-à-dire que le code de la bibliothèque de balises est exécuté à ce stade du document. Les balises peuvent contrôler leur sortie, ignorer ou exécuter en boucle l'exécution de leurs corps et interagir avec d'autres balises actives du document. Ils ressemblent, dans l’esprit et les fonctionnalités, aux balises JSP. Les bibliothèques et modules de balises (décrits plus loin) peuvent à la fois réduire considérablement la quantité de code sur une page Spyce et augmenter la réutilisation et la modularité du code.

2.2. Commentaires Spyce

Syntaxe: [[- - commentaire -]]

Les commentaires Spyce sont ignorés et ne produisent aucune sortie, ce qui signifie qu'ils n'apparaîtront pas dans le navigateur, même dans la source HTML. La première ligne d'un fichier Spyce, si elle commence par les caractères # !, est également considérée comme un commentaire, par la convention de script Unix. Les commentaires de Spyce ne sont pas imbriqués.

2.3. Directives d'espionnage

Syntaxe: [[. directive]]

Les directives Spyce affectent directement le fonctionnement du compilateur Spyce. Il existe un ensemble limité de directives, répertoriées et expliquées ci-dessous:

  • [[mode compact = mode]]:

Spyce peut générer les chaînes HTML statiques selon différents modes de compactage, ce qui permet à la fois de gagner de la bande passante et d’améliorer les temps de téléchargement sans affecter la sortie de manière visible. Le compactage des chaînes HTML statiques est effectué une fois lorsque le fichier Spyce en entrée est compilé, et il n’ya pas de surcharge supplémentaire au moment de l’exécution. Le contenu généré dynamiquement à partir de balises et d'expressions de code Python n'est compacté ni altéré de quelque manière que ce soit. Spyce peut fonctionner dans l’un des modes de compactage énumérés ci-dessous. On peut utiliser la balise compacte pour changer le mode de compactage à partir de ce point dans le fichier.

o off: aucun compactage n'est effectué. Chaque espace et nouvelle ligne dans les chaînes HTML statiques est préservée.

o space: le compactage de l'espace implique la réduction de tout passage consécutif d'espaces ou de tabulations en un seul espace. Tous les espaces ou les tabulations au début d'une ligne sont éliminés. Ces transformations n’affecteront pas la sortie HTML, sauf la balise <pre>, mais peuvent réduire considérablement la taille du texte émis.

o ligne: le compactage des lignes élimine tous les espaces blancs (invisibles) en fin de ligne. Plus important encore, il améliore la présentation indentée du HTML en ignorant les lignes qui ne contiennent pas de balises static text ou expression. À savoir, il supprime tous les espaces, y compris le saut de ligne, entourant le code ou les directives de cette ligne. Cette méthode de compactage "fait normalement le bon choix" et produit un code HTML agréable sans que le développeur ne soit astucieux. C'est donc le mode de compactage initial.

o complet: le compactage complet applique à la fois le compactage de lignes et le compactage Si l'attribut de mode facultatif est omis, le mode de compactage complet est la valeur par défaut supposée.

  • [[[.import nom = nom du = fichier comme = nom args = arguments]]:

La directive import charge et définit un module Spyce dans le contexte global. (La directive [[.module ...]] est synonyme.) Un module Spyce est un fichier Python, écrit spécifiquement pour interagir avec Spyce. Le paramètre name est obligatoire, spécifiant le nom de la classe Python à charger. Le paramètre de fichier est facultatif, spécifiant le fichier dans lequel la classe nommée doit être trouvée. Si omis, le fichier sera égal à name.py. Le chemin du fichier peut être absolu ou relatif. Les chemins relatifs sont analysés dans l’ordre suivant: répertoires de chemins de serveurs configurables par l’utilisateur et répertoire de scripts courant de Spyce home, dans cet ordre. Les utilisateurs sont invités à nommer ou à préfixer leurs modules de manière unique afin de ne pas être masqués par des modules système ou des bibliothèques de balises. L'asparamètre est facultatif et spécifie le nom sous lequel le module sera installé dans le contexte global. Si omis, ce paramètre par défaut est le paramètre name. Enfin, le paramètre optionnel args fournit les arguments à transmettre à la fonction d'initialisation du module. Tous les modules Spyce sont démarrés () avant le début du traitement de Spyce, init () au point où la directive est placée dans le code et terminés () après la fin du traitement de Spyce. Il est habituel de placer les modules au sommet du fichier ou à proximité, sauf si l'emplacement d'initialisation est pertinent pour le fonctionnement du module spécifique.

[[.import noms = "nom1, nom2, ..."]



5