zope.paste è un pacchetto che permette di
- Middleware WSGI impiego all'interno di una Zope 3 applicazione
- Distribuire l'application server Zope 3 su qualsiasi server web WSGI-capable
utilizzando PasteDeploy. Questi sono due completamente diversi modi operandi che hanno solo in comune che sono facilitare PasteDeploy. Ciascuno è spiegato in dettaglio di seguito.
Middleware WSGI all'interno Zope 3
zope.paste permette di impilare middleware WSGI sulla cima di applicazione editore di Zope 3 senza modificare il modo di configurare Zope (zope.conf) o eseguirlo (runzope, zopectl).
La configurazione è molto semplice. Supponendo che hai già creato un Zope 3 esempio utilizzando lo script mkzopeinstance, ci sono tre passi che devono essere eseguiti:
Installazione e configurazione zope.paste
zope.paste può essere installato come un uovo ovunque sul vostro PYTHONPATH o semplicemente caduto nella tua
Configurazione del server
Creiamo un
& Nbsp; tipo Paste.Main
& Nbsp; indirizzo 8081
Configurazione della pila WSGI
Ora configurare un'applicazione WSGI utilizzando la sintassi PasteDeploy in
[App: Paste.Main]
paste.app_factory = zope.paste.application: zope_publisher_app_factory
Che non è molto interessante, però. PasteDeploy permette di concatenare diverse entità WSGI insieme, che è dove si fa interessante. Sembra che ci sia una distinzione tra "apps" e "filtri" (noto anche come 'middleware'). Un esempio che potrebbe essere di interesse applica una trasformazione XSLT all'uscita dell'applicazione Zope 3 WSGI.
Abbastanza Fortunatamente, qualcuno sembra aver già creato un filtro WSGI per l'applicazione di un foglio di stile XSLT. Lo si può trovare in http://www.decafbad.com/2005/07/xmlwiki/lib/xmlwiki/xslfilter.py
Se si voleva applicare questo filtro WSGI di Zope 3, si avrebbe bisogno di tre cose:
1. Inserire il file xslfilter.py qualche parte in PYTHONPATH. / Lib / python è un buon posto.
2. Aggiungere questo frammento al fondo della xslfilter.py:
& Nbsp; def filter_factory (global_conf, ** local_conf):
& Nbsp; def filtro (app):
& Nbsp; tornare XSLFilter (app)
& Nbsp; filtro di ritorno
3. Modificare il file paste.ini come segue:
& Nbsp; [gasdotto: Paste.Main]
& Nbsp; gasdotto = XSLT principale
& Nbsp; [app: main]
& Nbsp; paste.app_factory = zope.paste.application: zope_publisher_app_factory
& Nbsp; [filtro: XSLT]
& Nbsp; paste.filter_factory = xslfilter: filter_factory
& Nbsp; Quello che fa è quello di definire una pipeline. Saperne di più sul sito PasteDeploy. Fare riferimento alla fonte di xslfilter.py per informazioni su come passare un foglio di stile al filtro.
Distribuzione Zope 3 su un server web WSGI compatibile
zope.paste consente di eseguire Zope 3 su qualsiasi software server web WSGI compatibile con PasteDeploy. Per questo non sarà più bisogno di una istanza Zope 3 (anche se è ancora possibile avere uno), non sarà possibile configurare Zope 3 attraverso zope.conf e non inizierà utilizzando runzope o zopectl.
Configurazione dell'applicazione
zope.paste fornisce una fabbrica compatibile PasteDeploy per l'applicazione WSGI editore di Zope 3 e registra in un punto di ingresso. Possiamo quindi creare un semplice Zope 3 applicazione in un file di configurazione PasteDeploy (es paste.ini):
[App: main]
uso = uovo: zope.paste
site_definition = /path/to/site.zcml
file_storage = /path/to/Data.fs
devmode = on
In questo caso, si riferisce ad un /path/to/site.zcml site.zcml come noto da un'istanza Zope 3. È possibile, ad esempio, mettere paste.ini in un'istanza Zope 3 esistente, accanto a site.zcml.
Configurazione del database ZODB
Invece di riferirsi ad un ZODB FileStorage utilizzando l'impostazione file_storage, è possibile anche configurare più o altri backend di database ZODB in un file di configurazione in stile ZConfig (molto simile zope.conf), ad esempio, la seguente configura un client ZEO:
& Nbsp;
& Nbsp; del server localhost: 8100
& Nbsp; di archiviazione 1
& Nbsp; cache-size 20MB
& Nbsp;
Fare riferimento a questo file da paste.ini questo modo (e cancellare l'impostazione file_storage):
db_definition = db.conf
Configurazione del server
Per essere in grado di utilizzare la nostra applicazione Zope, abbiamo solo bisogno di aggiungere una definizione server. Possiamo usare quello che viene fornito con Incolla o PasteScript, anzi:
[Server: main]
uso = uovo: PasteScript # wsgiutils
ospiterà = 127.0.0.1
port = 8080
Ora possiamo avviare l'applicazione utilizzando il comando paster che viene fornito con PasteScript:
& Nbsp; paster servire paste.ini
Middleware WSGI possono essere configurati come descritto sopra o sul sito internet PasteDeploy
Cosa c'è di nuovo in questa versione:.
- Supporto per Python 3.3.
- cessato il supporto per Python 2.4 e 2.5.
- Supporto Rimosso per l'impiego di middleware WSGI all'interno di Zope 3 applicazione. Solo l'avvio del server basato su script è ora supportato.
- Aggiunto un nuovo script console per eseguire un server WSGI pasta-configurato e applicazione.
- Conforme al layout del progetto ZF standard.
- licenza Aggiunto e file copyright. Fissa anche dichiarazione di copyright nelle intestazioni dei file.
- Aggiunto MANIFEST.in e tox.ini.
Cosa c'è di nuovo in versione 0.4:
- Aggiungi questo changelog, ricostruito da tronchi svn e rilasciare date PyPI.
- Supporto un'opzione di configurazione 'caratteristiche' nel file INI PasteDeploy, che può contenere un elenco separato da spazi dei nomi delle funzionalità. Questi possono essere testati per in file ZCML con la sintassi.
- In precedenza l'unica caratteristica che potrebbe essere attivato è stato 'devmode' e aveva la propria opzione. Per la compatibilità all'indietro, devmode = on aggiunge una funzione 'devmode' alla lista di funzionalità.
Requisiti :
- Python
I commenti non trovato