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