ZOPE
CI-2413 Desarrollo de
aplicaciones para Internet
Zope
Zope es un servidor de aplicaciones web
de código abierto escrito en Python.
Tiene un objeto de base de datos
transaccional que no solo puede
almacenar contenido y datos propios sino
que también plantillas HTML dinámicas,
scripts, un motor de búsqueda,
conexiones a bases de datos relacionales
y código.
Zope
Utiliza un modelo de desarrollo a través
del web fuerte, lo que permite que se
actualice el sitio web desde cualquier
lugar del mundo.
Para permitir esto Zope también tiene un
modelo de seguridad construido alrededor
del concepto “delegación de control
segura”.
Zope
El modelo transaccional de Zope no aplica
solo al objeto base de datos de Zope, sino
que también a muchos conectores
transaccionales de bases de datos.
Este modelo de transacciones ocurre
automáticamente asegurando que todos
los datos son exitosamente almacenados.
Zope
Hay muchas herramientas disponibles en
descargas para extender la funcionalidad de las
herramientas web de Zope.
Estos productos incluyen nuevos objetos de
contenido, bases de datos relacionales y otros
conectores externos de datos, herramientas
avanzadas de administración de contenido,
aplicaciones completas para comercio
electrónico, administración de documentos o
contenido, o herramientas de depuración.
Recursos para Zope
El libro de Zope
Guía de desarrolladores Zope
Zope Newbies
Tutorial Python
Nadie espera la inquisición española
Aplicaciones y productos
Zope interesantes
Marco de trabajo para administración de
contenido (CMF) Zope
Plone
Silva
DocFinder
Product database
DTML
DTML (Document Template Markup
Language) es una aplicación de plantillas
de Zope. Por analogía es similar a Smarty
en PHP.
DTML tiene a su haber Documentos DTML
y Métodos DTML. Los métodos sirven
para realizar acciones y los documentos
son objetos de contenido.
Sintáxis de etiquetas DTML
Existen dos tipos de etiquetas DTML,
simples y de bloque.
Las etiquetas simples no se cierran y las
etiquetas de bloque sí.
Las etiquetas DTML son similares a las
etiquetas HTML, con la peculiaridad de
que llevan el prefijo dtml-.
DTML: Nombres, destino y
atributos
nombre
atributo
<dtml-var wingspan missing="unknown wingspan">
destino
DTML: Ejemplo
<dtml-var standard_html_header>
<h1>Lista de precios para <dtml-var title></h1>
<p>Banano C20</p>
<p>Huevo C80</p>
<dtml-var standard_html_footer>
Componentes
Zope es un sistema de componentes. Los
componentes son objetos Python que
tienen interfaces bien definidas.
Componentes
from Interface import Base
class Hello(Base):
""" The Hello interface provides greetings. """
def hello(self, name):
""" Say hello to the name """
class HelloComponent:
__implements__ = Hello
def hello(self, name):
return "hello %s!" % name
Componentes
Consultando interfaces:
>>> User.names()
['getUserName', 'getFavoriteColor', 'getPassword']
namesAndDescriptions()
getName()
getDoc()
getSignatureInfo()
getSignatureString()
Publicación de Objetos
Zope hace públicos los objetos en el Web.
Esto se llama publicación de objetos.
Además de hacerlo para el protocolo
HTTP, Zope, es capaz de hacerlo para FTP,
WebDAV y XML-RPC.
Publicación HTTP
Cuando se envía una solicitud al servidor
Web de Zope, es procesada por ZPublisher,
que es el publicador de objetos de Zope.
ZPublisher es un ORB liviano (Object Request
Broker). Toma la solicitud y localiza al objeto
para manejar la solicitud. El publicador utiliza
el URL de solicitud como un mapa para
localizar el objeto a publicar.
Publicación HTTP
El proceso de extraer parámetros de la
solicitud es llamado ordenamiento de
argumentos. El objeto publicado entonces
regresa una respuesta, la cual es pasada
de nuevo al servidor web de Zope. El
servidor web, entonces pasa la respuesta
hacia su navegador web.
Publicación HTTP
Encontrar un objeto para manejar la solicitud
es llamado atravesar, dado que el publicador
se mueve de objeto en objeto hasta que
encuentra el correcto. Una vez que el objeto
es encontrado, el publicador llama un
método el objeto publicado, pasando
parámetros a como sea necesario. El
publicador utiliza la solicitud para determinar
que proceso llamar y que parámetro pasar.
Descargar

ZOPE