zope.paste é um pacote que permite que você
- Middlewares empregam WSGI dentro de uma aplicação Zope 3
- Implanta o servidor de aplicações Zope 3 em qualquer webserver WSGI-capable
usando PasteDeploy. Estes são dois modi operandi completamente diferente, que só têm em comum que eles são facilitar PasteDeploy. Cada é explicado em detalhe abaixo.
Middlewares WSGI dentro Zope 3
zope.paste permite empilhar middlewares WSGI no topo da aplicação publisher do Zope 3, sem alterar a maneira como você configurar Zope (zope.conf) ou executá-lo (runzope, zopectl).
A configuração é muito simples. Supondo que você já tenha criado uma instância Zope 3 usando o script mkzopeinstance, existem três passos que precisam ser executadas:
Instalando e configurando zope.paste
zope.paste pode ser instalado como um ovo em qualquer lugar em seu PYTHONPATH ou simplesmente caiu em sua
Configurando o servidor
Criamos um
& Nbsp; tipo Paste.Main
& Nbsp; endereço de 8081
Configurando a pilha WSGI
Agora vamos configurar um aplicativo WSGI usando PasteDeploy sintaxe em
[App: Paste.Main]
paste.app_factory = zope.paste.application: zope_publisher_app_factory
Isso não é realmente interessante, no entanto. PasteDeploy permite cadeia várias entidades WSGI juntos, que é onde fica interessante. Parece haver uma distinção entre os "apps" e "filtros" (também conhecido como 'middleware'). Um exemplo que pode ser de interesse é a aplicação de uma transformação XSLT para a saída da aplicação WSGI Zope 3.
Felizmente o suficiente, alguém parece já ter criado um filtro WSGI para a aplicação de uma folha de estilo XSLT. Você pode encontrá-lo em http://www.decafbad.com/2005/07/xmlwiki/lib/xmlwiki/xslfilter.py
Se você quiser aplicar esse filtro WSGI para Zope 3, você precisa de três coisas:
1. Coloque o arquivo em algum lugar xslfilter.py PYTHONPATH. / Lib / python é um bom lugar.
2. Adicione esse trecho para o fundo do xslfilter.py:
& Nbsp; def filter_factory (global_conf, ** local_conf):
& Nbsp; def filtrar (app):
& Nbsp; retornar XSLFilter (app)
& Nbsp; filtro de retorno
3. Altere arquivo paste.ini da seguinte forma:
& Nbsp; [gasoduto: Paste.Main]
& Nbsp; gasoduto = xslt principal
& 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; O que isso faz é definir um pipeline. Saiba mais sobre o site do PasteDeploy. Consulte a fonte de xslfilter.py para obter informações sobre como passar uma folha de estilo para o filtro.
A implantação de Zope 3 em um webserver WSGI-capable
zope.paste permite que você execute Zope 3 em qualquer software servidor WSGI-capable usando PasteDeploy. Para isso, você não precisará mais de uma instância Zope 3 (embora você ainda pode ter um), você não vai configurar Zope 3 a zope.conf e não iniciá-lo usando runzope ou zopectl.
Configurando o aplicativo
zope.paste fornece uma fábrica PasteDeploy compatível para aplicação publisher WSGI do Zope 3 e registra-lo em um ponto de entrada. Podemos, portanto, criar uma aplicação muito simples Zope 3 em um arquivo de configuração PasteDeploy (eg paste.ini):
[App: main]
use = ovo: zope.paste
site_definition = /path/to/site.zcml
file_storage = /path/to/Data.fs
devmode = on
Neste caso, refere-se a um /path/to/site.zcml site.zcml como conhecido a partir de uma instância Zope 3. Você pode, por exemplo, colocar paste.ini em uma instância Zope 3 existente, ao lado de site.zcml.
Configurando o banco de dados ZODB
Em vez de se referir a um ZODB FileStorage usando a configuração file_storage, você também pode configurar vários outros servidores de banco de dados ou ZODB em um arquivo de configuração ZConfig de estilo (muito parecido com zope.conf), por exemplo, o seguinte configura um cliente ZEO:
& Nbsp;
& Nbsp; localhost servidor: 8100
& Nbsp; de armazenamento 1
& Nbsp; cache-size 20MB
& Nbsp;
Consulte este arquivo de paste.ini desta forma (e eliminar a definição file_storage):
db_definition = db.conf
Configurando o servidor
A fim de ser capaz de usar a nossa aplicação Zope, só precisamos adicionar uma definição de servidor. Nós podemos usar o que vem com Cole ou PasteScript, sim:
[Server: main]
use = ovo: PasteScript # wsgiutils
host = 127.0.0.1
port = 8080
Agora podemos iniciar o aplicativo usando o comando paster que vem com PasteScript:
& Nbsp; paster servir paste.ini
O que é novo nesta versão middlewares WSGI pode ser configurado como descrito acima ou no site da PasteDeploy:
- Adicionado suporte. para Python 3.3.
- retirou o suporte para Python 2.4 e 2.5.
- apoio Removido para o emprego de middlewares WSGI dentro de uma aplicação Zope 3. Somente a inicialização do servidor baseada em script é agora suportado.
- Adicionado um novo script do console para executar um servidor WSGI configurado-paste e aplicação.
- Em conformidade com a disposição de projeto padrão ZF.
- Adicionado licença e arquivo de copyright. Também fixa declaração de direitos autorais em cabeçalhos de arquivo.
- Adicionado MANIFEST.in e tox.ini.
O que é novo na versão 0.4:
- Adicione esta changelog, reconstruído a partir de registros de SVN e datas de lançamento em PyPI.
- Apoio a opção config 'recursos' no arquivo PasteDeploy INI, que pode conter uma lista separada por espaço de nomes de recursos. Estes podem ser testados em relação à arquivos ZCML com a sintaxe.
- Anteriormente, a única característica que poderia ser ativado foi 'devmode' e tinha a sua própria opção. Para compatibilidade com versões anteriores, devmode = on adiciona um recurso 'devmode' para a lista de recursos.
Requisitos :
- Python
Comentários não encontrado