zope.paste est un paquet qui vous permet de
- Middlewares emploi WSGI l'intérieur d'une application Zope 3
- Déployer le serveur Zope 3 d'application sur ne importe quel serveur web WSGI capable
utilisant PasteDeploy. Ce sont deux modes opératoires complètement différent qui ne ont en commun qu'ils sont de faciliter PasteDeploy. Chaque est expliquée en détail ci-dessous.
Middlewares WSGI intérieur Zope 3
zope.paste vous permet d'empiler middlewares WSGI sur le dessus de la demande de l'éditeur de Zope 3 sans changer la façon dont vous configurez Zope (zope.conf) ou exécutez (runzope, zopectl).
La configuration est très simple. En supposant que vous avez déjà créé un instance Zope 3 en utilisant le script de mkzopeinstance, il ya trois étapes qui doivent être effectuées:
Installation et configuration zope.paste
zope.paste peut être installé comme un œuf ne importe où sur votre PYTHONPATH ou simplement tombé dans votre
Configuration du serveur
Nous créons un
& Nbsp; Type Paste.Main
& Nbsp; l'adresse 8081
Configuration de la pile de WSGI
Maintenant, nous configurons une application WSGI utilisant PasteDeploy syntaxe
[Application: Paste.Main]
paste.app_factory = zope.paste.application: zope_publisher_app_factory
Ce ne est pas vraiment intéressant, cependant. PasteDeploy vous permet d'enchaîner différentes entités WSGI ensemble, ce qui est là que ça devient intéressant. Il semble y avoir une distinction entre les «applications» et les «filtres» (également dénommé «middleware»). Un exemple qui pourrait être d'intérêt applique une transformation XSLT à la sortie de l'application Zope 3 WSGI.
Fort heureusement, quelqu'un semble avoir déjà créé un filtre WSGI pour appliquer une feuille de style XSLT. Vous pouvez le trouver à http://www.decafbad.com/2005/07/xmlwiki/lib/xmlwiki/xslfilter.py
Si vous voulez appliquer ce filtre WSGI à Zope 3, vous auriez besoin de trois choses:
1. Placez le fichier xslfilter.py quelque part dans PYTHONPATH. / Lib / python est un bon endroit.
2. Ajouter ce bout au fond de xslfilter.py:
& Nbsp; def filter_factory (global_conf, local_conf **):
& Nbsp; filtrer def (app):
& Nbsp; retourner XSLFilter (app)
& Nbsp; filtre de retour
3. Modifiez le fichier paste.ini comme suit:
& Nbsp; [pipeline: Paste.Main]
& Nbsp; pipeline = xslt principale
& Nbsp; [de l'application: principale]
& Nbsp; paste.app_factory = zope.paste.application: zope_publisher_app_factory
& Nbsp; [filtre: xslt]
& Nbsp; paste.filter_factory = xslfilter: filter_factory
& Nbsp; Ce qu'il fait est de définir un pipeline. En savoir plus sur le site PasteDeploy. Reportez-vous à la source de xslfilter.py pour savoir comment faire passer une feuille de style pour le filtre.
Déploiement Zope 3 sur un serveur web WSGI capable
zope.paste vous permet d'exécuter Zope 3 sur ne importe quel logiciel de serveur web WSGI capable utilisant PasteDeploy. Pour cela, vous ne aurez plus besoin d'une instance Zope 3 (mais vous pouvez toujours avoir un), vous ne serez pas configurer Zope 3 à zope.conf et ne allez pas commencer à l'aide runzope ou zopectl.
Configuration de l'application
zope.paste fournit une usine PasteDeploy-compatible pour la demande de l'éditeur de WSGI de Zope 3 et l'enregistre dans un point d'entrée. Nous pouvons donc créer une très simple application Zope 3 dans un fichier de configuration PasteDeploy (par exemple paste.ini):
[Application: principale]
utilisation = oeuf: zope.paste
site_definition = /path/to/site.zcml
file_storage = /path/to/Data.fs
devmode = on
Dans ce cas, se réfère à un /path/to/site.zcml site.zcml comme cela est connu à partir d'une instance Zope 3. Vous pouvez, par exemple, mettre paste.ini sur une instance existante Zope 3, à côté de site.zcml.
Configuration de la base ZODB
Au lieu de se référer à un ZODB FileStorage en utilisant le réglage de file_storage, vous pouvez également configurer plusieurs ou d'autres backends de base de données de ZODB dans un fichier de configuration ZConfig style (un peu comme zope.conf), par exemple, ce qui suit configure un client ZEO:
& Nbsp;
& Nbsp; le serveur localhost: 8100
& Nbsp; de stockage 1
& Nbsp; cache-size 20Mo
& Nbsp;
Reportez-vous à ce fichier à partir paste.ini cette façon (et supprimer le paramètre de file_storage):
db_definition = db.conf
Configuration du serveur
Afin de pouvoir utiliser notre application Zope, nous avons seulement besoin d'ajouter une définition de serveur. Nous pouvons utiliser celui qui est livré avec Colle ou PasteScript plutôt:
[Serveur: principale]
utilisation = oeuf: PasteScript # wsgiutils
host = 127.0.0.1
port = 8080
Maintenant nous pouvons commencer l'application en utilisant la commande emplâtre qui vient avec PasteScript:
& Nbsp; paster servir paste.ini
middlewares WSGI peuvent être configurés comme décrit ci-dessus ou sur le site PasteDeploy
Quoi de neuf dans cette version:.
- Ajout du support pour Python 3.3.
- supprimé le support pour Python 2.4 et 2.5.
- Prise en charge supprimée pour employer middlewares WSGI l'intérieur d'une application Zope 3. Seul le serveur startup basée script-est désormais pris en charge.
- Ajout d'un nouveau script de la console pour exécuter un serveur et l'application WSGI pâte configuré.
- Conforme à disposition standard de projet ZF.
- licence ajoutée et fichier de copyright. Aussi fixe déclaration de copyright dans les entêtes de fichiers.
- Ajouté MANIFEST.in et tox.ini.
Quoi de neuf dans la version 0.4:
- Ajoutez cette changelog, reconstruite à partir de grumes de svn et libérer dates PyPI.
- Soutenir une option config 'Caractéristiques' dans le fichier INI PasteDeploy, qui peut contenir une liste séparée par des espaces des noms de fonctionnalités. Ceux-ci peuvent être testés dans des fichiers ZCML avec la syntaxe.
- Auparavant, la seule caractéristique qui pourrait être activé était «devmode 'et il avait sa propre option. Pour une compatibilité ascendante, devmode = on ajoute une fonction 'devmode »à la liste des fonctionnalités.
Exigences :
- Python
Commentaires non trouvées