ejemplo de plantillas

Chema Cortes pych3m4 en gmail.com
Lun Mayo 26 20:09:50 CEST 2008


El día 26 de mayo de 2008 19:03, Pablo Rodríguez <oinos en web.de> escribió:

> hace unos días hice una pregunta sobre un pequeño programa que genera un
> script para generar Flash con swfc (que no he actualizado en su versión
> en red http://ousia.justfree.com/iracconshow.txt).
>
> Arnau me sugirió que usase una plantilla para el código de swfc (si no
> he entendido mal) porque mi código está infestado de filebuffer.append.
>
> Me doy cuenta de que algo así debo hacer porque quiero añadir opciones
> al código de swfc (los filebuffer.append) y esto ya empieza a ser
> bastante inmanejable.
>
> Tengo que reconocer que además de no tener prácticamente idea de
> programación, no entiendo muy bien qué son las plantillas (intuyo cómo
> funcionan, pero no he encontrado un ejemplo).
>
> En la referencia http://wiki.python.org/moin/Templating, hay demasiadas
> opciones para un ignorante como yo. Entiendo que debería hacerlas con
> algo que esté dentro de las bibliotecas estándar de Python (para que
> todos los requisitos por la parte de Python sean sólo Python y funcione
> a todo el mundo).

No he seguido la anterior conversación, pero te puedo sugerir usar
algo tan simple como el operador de formato '%'. Toda la "plantilla"
la expresas como una cadena multilínea (las que empiezan y acaban por
triple comillas), e introduce en ella las variables de sustitución que
desees mediante el indicativo %s.

Yo suelo introducir las variables de sustitución en diccionarios, algo
bastante cómodo si quieres luego reutilizar las mismas variables a lo
largo del código. Por ejemplo:

host_conf="""  host %(name)s {
    fixed-address %(ip)s;  #%(comment)s
    hardware ethernet %(mac)s;
  }"""

params={ "name": "homer", "comment":"Servidor Local",
"ip":"10.0.0.100", "mac":"02:00:00:00:00:50" }

res_txt=host_conf % params

file("output.txt","w").write(res_txt)


Seguramente te sobre con ésto.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es