Liens connexes

Dépêche modérée par

Dépêche éditée par

: Que peut-on faire avec Zope 3.3 ?

Posté par ccomb (Jabber id, page perso, ). Modéré le 21 octobre 2006.
0
À l'occasion de la sortie de Zope 3.3.0 voici une micro présentation permettant d'appréhender rapidement ce qu'offre Zope 3 pour le développeur web.

Zope est un serveur d'application web écrit en Python. Les éléments (documents, images, templates ..) sont des objets stockés dans la base de données objets (ZODB) et sont publiés sur différents protocoles : HTTP, FTP, WebDAV, XML-RPC. On ne parle plus en termes de pages mais d'objets auxquels on applique des méthodes (vue, action, etc.). L'ensemble peut être entièrement piloté par une interface Web.

Zope 3 est une réécriture complète de Zope 2 sous forme d'une architecture à base de composants. De nombreuses versions sont apparues depuis 3 ans et il est aujourd'hui utilisable et utilisé en production (par ex. le Launchpad d'Ubuntu ou le projet SchoolTool).

Zope 3 permet d'aborder la puissance de Zope de manière plus directe et plus propre. Il est plus cohérent, plus homogène, plus léger et de plus en plus simple au fil des versions. Il est conçu dès le départ pour les projets complexes, mais il est maintenant possible de faire de petits sites et c'est probablement la meilleure façon d'apprendre progressivement. Néanmoins, il est préférable d'être à l'aise avec la programmation objet et les design patterns. La modularité et la souplesse de Zope 3 rendent la plupart de ses composants indépendants du serveur d'application. À l'opposé, il est possible de réutiliser des produits externes sans les modifier grâce à l'écriture d'adaptateurs. L'accent est mis sur les notions d'interfaces, de tests unitaires et fonctionnels, et d'autodocumentation.

Vous trouverez dans la suite de l'article une liste des fonctionnalités de Zope 3, ainsi que deux exemples simples et concrets d'utilisation des technologies zope : la ZODB et les ZPT.

Zope 3 est sous licence ZPL 2, compatible avec la GPL.

> Lire la suite (30 commentaires, moyenne: 3,6).   [dépêche : 3399 caractères]

Zope 3 offre entre autres :

Exemple d'utilisation de la base de données objet :

La base de données objet (ZODB) permet d'organiser des objets de manière arborescente : certains objets, comme l'objet Folder, peuvent contenir d'autres objets. Le stockage des données se fait sans effort et de manière transparente : il n'y a pas de requête à faire, les objets stockés dans la base sont directement accessibles dans le code.

- Par exemple pour créer un objet Machin et l'enregistrer dans la base de données sous le dossier "folder", il suffit d'écrire
machin = Machin()
folder['machin']=machin

- Pour le récupérer :
monmachin = folder['machin']

- Pour l'effacer de la base de données :
del folder['machin']

- Pour modifier son titre :
folder['machin'].title = u'titre'

Le seul prérequis est que Machin soit héritée de Persistent.

Exemple de titre HTML créé dynamiquement dans une page

Le module Zope Page Template permet d'écrire des pages templates en XHTML en conservant la validité XML. Ceux-ci peuvent donc être envoyés à un graphiste ou être édités de manière transparente dans un éditeur wysiwyg.

Pour créer un titre dynamiquement dans une page html, il suffit d'écrire :
<h1 tal:content='objet/titre'>mon titre</h1>

La partie « tal:content » indique de remplacer le contenu de la balise h1, c'est-à-dire « mon titre », par l'expression fournie.
Et l'expression « objet/titre » permet d'accéder à l'attribut « titre » de l'objet « objet ».

Zope 2 offrait un système de macros permettant de créer des templates de templates, mais dans Zope 3 un système plus souple et plus puissant que les macros ont été créés : les Viewlets et les Viewlet Managers. Des démos de Viewlets et Viewlets Managers et d'autres composants sont disponibles (à installer dans une instance Zope).

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

des PAGES web

Posté par Mildred (Jabber id, page perso, ) le 21/10/2006 à 23:02. (lien). Évalué à 0.

A mon avis, le HTML et ses déscendants comme XHTML sont conçus à la base pour faire des pages, c'est à dire du texte structuré et avec des hyperliens, rien de plus.
Ce que je regrette dans l'évolution du web c'est que cela s'est perverti et que maintenant on fait des interfaces en xHTML. Des menus, des boîtes ...

Ce que je rêve pour le web, c'est un web sans tableaux pour la présentation, sans feuilles de style imposées ... Un web où il y aurait un nouveau type de document décrivant la structure d'un site et présenté par le navigateur dans la forme préférée par l'utilisateur, au lieu d'avoir pour chaque site un système de menus différent.
Un seb où on puisse se passer de la feuille de style du site pour choisir la sienne, qui serait valable pour tous les sites, ou aucune, tout en concervant une facilité de navigation.
Un web où les balises link dans le head soient présentées par le navigateur à l'utilisateur. (je veux ça dans epiphany, safari et de préférence par défaut dans firefox et peut être konqueror (il le fait peut être déjà par défaut)).

mais ce n'est pas avec les évolution actuelles (WEB2, AJAX, ...) qu'on s'en approche, je n'en ai pas l'impression.

Je me rapelle la page d'un projet sur sourceforge où dans la FAQ il y avait une question du style "Pourquoi ce site est-il moche ?", le site n'utilisait pas de feuilles de style, et encore moins des tableaux ...
Pourquoi ? Car votre navigateur a choisi une feuille de style par défaut moche, changez-la et vous aurez un joli site.
Malhereusement, cette solution n'est pas applicable car si on la change, on va se retrouver aec d'autres sites qui s'attendent à des paramètres par défaut qui ne seront pas présents, et je pense qu'un grand nombre de site seront inutilisables.

C'est quoi le but d'une page web au fond ? structurer du contenu, non ?
Au moment où j'ai réalisé cela, j'ai changé ma manière de concevoir les sites web. D'un système compliqué en php, je suis passée à des pages xhtml statiques mises à jour periodiquement par une tache cron pour transformer les pages xhtml en page html automatiquement et mettre le site en ligne.

Question perfs ?

Posté par Médéric RIBREUX (page perso, ) le 22/10/2006 à 18:16. (lien). Évalué à 5.

Hello,

petite question rapide: ça donne quoi en terme de perfs ? Les essais que j'avais fait (Zope 2.3, celui de la sarge) à l'époque m'avait tout simplement fait fuir: le temps de génération des pages était trop long et l'espace mémoire occupé m''inquiétait fortement. L'application qui tournait dessus était Plone.
Finalement, j'ai opté pour une solution plus légère (basée sur PHP) et j'ai gardé mon serveur en l'état !
Maintenant, si on me dit que Zope 3 est plus léger, je referais bien quelques benchs.

Autre question: ZODB peut-il être comparé à Hibernate ?

Interface en Python ?

Posté par fifre (page perso, ) le 22/10/2006 à 22:58. (lien). Évalué à 5.

Je viens de voir que ce zope propose "la notion d'interface" à python (et l'introspection de celle ci). Python est un langage multi-héritage si je ne m'abuse, quel est l'interet d'une telle fonctionnalité dans un langage de ce type ?

et Zope vs ezPublish ?

Posté par Yoan Blanc (Jabber id, page perso, ) le 23/10/2006 à 20:53. (lien). Évalué à 4.

En lisant le descriptif, il me semble reconnaître des principes appliqués par ez Publish (l'usine à gaz en PHP), la notion d'objet plutôt que de pages. J'ai pu assister aux graves douleurs de le mise en forme d'un site avec ez, il y a-t-il des connaisseurs des deux mondes qui peuvent donner leur expérience des deux mastodontes.

D'avance, merci.

Revenir en haut de page