PDF de programación - Zope Page Templates

Imágen de pdf Zope Page Templates

Zope Page Templatesgráfica de visualizaciones

Publicado el 17 de Julio del 2019
476 visualizaciones desde el 17 de Julio del 2019
346,5 KB
45 paginas
Creado hace 14a (15/07/2009)
Interneterako software eta estrategia
www.codesyntax.com

Zope Page Templates 

Aitzol Naberan Burgaña

CodeSyntax

 

 

Qué es



● Es una herramienta que ofrece Zope para la 

generación de páginas web

● Ayuda a los diseñadores y a los desarrolladores

● Amigable para las herramientas de edición
● Lo que ves es “muy parecido” a lo que obtienes
● El código está fuera de la plantilla (salvo elementos 

estructurales)

 

 

Cómo funcionan



● Template Attribute Language (TAL)

● Define una serie de atributos

<title tal:content=”here/title”>Page Title</title>

● Los editores no entienden el namespace tal

● Eliminan esa parte
● Los diseñadores pueden trabajar ya que se define 

un valor por defecto para el contenido.

 

 

Cómo funcionan



● Aqui se demuestra que “lo que ves es 'muy 

parecido” a lo que obtienes”
● La parte here/title es dinamica
● Cambiará en tiempo de ejecución
● El contenido de la etiqueta title hace que tengamos 

una idea de como aparecerá el contenido 

 

 

Cómo funcionan



● Tenemos estamentos para:

● Reemplazar etiquetas
● Reemplazar el contenido de una etiqueta
● Elementos de repetición
● Elementos condicionales
● Definición de bloques
● ...

 

 

Cómo funcionan



● NO es posible:

● Generar clases o funciones
● Ejecutar flujos de control complejos
● Expresar algoritmos complejos

● Si es necesaria alguna de las caracteristicas 

anteriores es el momento de empezar a pensar 
en python.

● Esta es una limitación intencionada, para 

mantener el código (logica) fuera de las 
plantillas.

 

 

Hello world!



<html>

<head>

</head>
<body>

<title tal:content=”template/title”>Page Title</title>

<h1 tal:content=”template/title”>

Aqui vamos a insertar el encabezado

</h1>

</body>

</html>

 

 

Expresiones simples



● Path explessions

● template/title
● request/URL
● user/getUserName

● Siempre empiezan con un nombre de variable.
● Si la primera variable tiene el valor que 

necesitamos terminamos, de lo contrario se 
sigue con '/'
● P.e.: template/title: es la propiedad title de template  

 

 

Expresiones simples



● request y user son variables predefinidas por 

Zope.

● Es posible definir nuestras propias variables.

 

 

Insertar texto



● tal:replace

● Reemplaza toda la etiqueta

● tal:content

● Reemplaza el contenido de la etiqueta

<html>
<body>

</body>
</html>
 

<strong tal:replace=”template/title”>Título</strong>

Esto reemplaza el contenido:

<strong tal:content=”template/title”>Título</strong>

<h1>Ejemplo de inserción</h1>
Esto reemplaza la etiqueta 'strong' :

 

Insertar estructuras



● Tanto tal:content como tal:replace escapan las 

entidades html

● Para insertar html necesitamos utilizar la 

palabra clave structure

 

 

Insertar estructura



<html>
<head>
<title tal:content="template/title">The title</title>
</head>
<body>
<h1 tal:content="template/title">Título de la página</h1>
<p>Con <strong>structure</strong>:
<span tal:replace="structure here/returnHTML">
Contenido de la plantilla</span>
</p>
<p>Sin <strong>structure</strong>:
<span tal:replace="here/returnHTML">
Contenido de la plantilla</span>
</p>
</body>
</html>

 

 

Estructura de repetición



● tal:repeat

● Es el equivalente al bloque for de python
● tal:repeat=”variable_de_repeticion elementos”
● Información disponible sobre el número de 

repetición
– index : indice de la iteración (cuenta desde 0)
– number : número de la iteración (cuenta desde 1)
– letter : cuenta usando caracteres (desde 'a')
– Letter : cuenta usando caracteres (desde 'A')

 

 

Estructura de repetición



● Información disponible sobre caracteristicas de 

la repetición
● even: True si la repetición es par 
● odd: True si la repetición es impar
● start: True si es la primera repetición
● end: True si es la última repetición
● length: Número total de repeticiones 

● Es posible anidar repeticiones

 

 

Estructuras de repetición



<html>

<head>

<title>Ejemplo de repetición</title>

</head>
<body>
<h1>Ejemplo de repetición</h1>
<table>

<tr>
<th>Number</th><th>Id</th><th>Meta-Type</th><th>Title</th>
</tr>
<tr tal:repeat="item container/objectValues">
<td tal:content="repeat/item/number">#</td>
<td tal:content="item/getId">Id</td>
<td tal:content="item/meta_type">Meta-Type</td>
<td tal:content="item/title">Title</td>
</tr>
</table>

 

 

Estructuras condicionales



● tal:condition

● Es el equivalente al bloque if de python
● tal:condition=”expresion”
● Ejecuta el bloque si la condición se cumple
● No existe bloque else

– Se necesita otro bloque condition con la negación de la 

condición original

● tal:condition=”not:expresion”

 

 

Estructuras condicionales



<html>

<head>

<title>Ejemplo de repetición</title>

</head>
<body>
<h1>Ejemplo de repetición</h1>
<table tal:condition=”container/objectValues”>

<tr>
<th>Number</th><th>Id</th><th>Meta-Type</th><th>Title</th>
</tr>
<tr tal:repeat="item container/objectValues">
<td tal:content="repeat/item/number">#</td>
<td tal:content="item/getId">Id</td>
<td tal:content="item/meta_type">Meta-Type</td>
<td tal:content="item/title">Title</td>
</tr>
</table>

 

 

Definir variables



● tal:define

● Define una variable que es valida dentro del ambito 

de la etiqueta en la que se define

● tal:define=”variable valor_de_la_variable”

<table tal:define=”items container/objectValues”
tal:condition=”items”>
<tr>
<th>Number</th><th>Id</th><th>Meta-Type</th><th>Title</th>
</tr>
<tr tal:repeat="item items">
<td tal:content="repeat/item/number">#</td>
<td tal:content="item/getId">Id</td>
<td><img src=”path.gif” tal:attribures="src item/icon">
<span tal:replace=”item/meta_type”>Meta-Type</span></td>
<td tal:content="item/title">Title</td>
</tr>
</table>
 

 

Definir variables



● Para definir una variable global es necesario 

utilizar la palabra clave global antes de la 
definición de la variable.

...
<table tal:define=”global items container/objectValues”>
...

● Es posible definir más de una variable en la 

misma sentencia.

...
<table tal:define=”global items container/objectValues;
container_icon container/icon”>
...

 

 

Variables predefinidas



● nothing: Es un valor nulo
● default: No modifica el texto de la etiqueta
● options:

 Es 

la  variable  que  guarda 

los 
argumentos  basados  en  palabras  clave 
(solamente  disponible  cuando  se  llama  a  la 
plantilla desde código python)

● attrs:  Diccionario  de  atributos  de  la  etiqueta 

actual

● root: La raiz de Zope

 

 

Variables predefinidas



● here: El objeto desde el que la plantilla es 

llamado (contexto)

● container: El objeto en donde la plantilla esta 

guardado.

● modules: Lista de módulos python disponibles.

 

 

Modificar atributos



● tal:attributes

● Es posible modificar los valores de los atributos de 

las etiquetas

● tal:attributes=”atributo nuevo_valor”

...
<td><img src=”path_a_la_imagen.gif”
  • Links de descarga
http://lwp-l.com/pdf16314

Comentarios de: Zope Page Templates (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad