Veamos un ejemplo de Cheetah en un Apache, para ello usaremos Mod_python.
Este artículo lo he preparado porque "fer" me preguntó sobre Cheetah y Mod_python para apache, espero que sea suficiente para él y para todos los lo lean después!
Configurar Apache
Comenzaremos preparando el archivo .htaccess de nuestro servidor web, lo editamos e incluimos en este las siguientes líneas.
AddHandler mod_python .py
PythonHandler index
PythonDebug On
Doy por sentado que ya tienes instalado el módulo mod_python en apache, si no es el caso, comienza por ahí.
Prueba inicial
Creamos un fichero en nuestro directorio llamado index.py, e introducimos en él
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!") return apache.OK
Todo script llamado por mod_python deberá contener una función llamada
"handler" que será la encargada de generar los contenidos y devolverlos. El script se llama "index.py" porque en .htaccess lo hemos puesto así, pero podría llamarse de cualquier otra forma, incluso podrías preparar una especie de "handler" que cargue otros scripts creados por tí según el contenido que se le indique.
Abre la página que se llamará (por ejemplo): http://localhost/index.py
Este deberá generar un bonito "hello world", sino es así, por favor, acude a la
documentación del proyecto mod_python (en) y sigue la documentación para configurar correctamente el módulo mod_python.
Adaptando el script websafe
Ahora que funciona mod_python y que nuestro index.py genera la página vamos a meterle el código de mi anterior artículo
Plantillas con Cheetah, este generará una página HTML con los colores web que se consideran fiables en todos los navegadores.
from mod_python import apache
from Cheetah.Template import Template
def handler(req):
req.content_type = 'text/html'
req.write(generaWebSafeColors(req))
return apache.OK
def generaWebSafeColors(req):
colores = []
tmp = []
for x in range(0,256, 51):
for y in range(0,256, 51):
for z in range(0,256, 51):
tmp.append("rgb(%d, %d, %d)" % (x, y, z)) colores.append(tmp)
tmp = []
return str(Template(file='/var/www/websafecolors.tmpl', searchList=[{'colores': colores}])) Si te fijas en el script, este abre un archivo llamado
"websafecolors.tmpl" situado en /var/www/, corrige la ruta si es necesario, aquí tienes su contenido.
<html>
<head>
<style>
td { width: 10px; height: 5px;}</style>
</head>
<body>
<h1>Tabla de colores WebSafe</h1>
<table cellspacing='0'>
#for $row in $colores
<tr>
#for $color in $row
<td style='background-color: $color'></td>
#end for
</tr>
#end for
</table>
</body>
</html>
Probalotodo
Fer se ha autoproclado
probalotodo del ukablog, así que si ves que falla algo no dudes en pedirle explicaciones, si lo necesitas, estaré encantado de darte su correo electrónico, así podré quitar de una vez el pipe que tengo para los comentarios desagradbles, ya sabes, cat
"insulto" > /dev/null.
Configurar Apache
Comenzaremos preparando el archivo .htaccess de nuestro servidor web, lo editamos e incluimos en este las siguientes líneas.
AddHandler mod_python .py
PythonHandler index
PythonDebug On
Doy por sentado que ya tienes instalado el módulo mod_python en apache, si no es el caso, comienza por ahí.
Prueba inicial
Creamos un fichero en nuestro directorio llamado index.py, e introducimos en él
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!") return apache.OK
Todo script llamado por mod_python deberá contener una función llamada
"handler" que será la encargada de generar los contenidos y devolverlos. El script se llama "index.py" porque en .htaccess lo hemos puesto así, pero podría llamarse de cualquier otra forma, incluso podrías preparar una especie de "handler" que cargue otros scripts creados por tí según el contenido que se le indique.
Abre la página que se llamará (por ejemplo): http://localhost/index.py
Este deberá generar un bonito "hello world", sino es así, por favor, acude a la
documentación del proyecto mod_python (en) y sigue la documentación para configurar correctamente el módulo mod_python.
Adaptando el script websafe
Ahora que funciona mod_python y que nuestro index.py genera la página vamos a meterle el código de mi anterior artículo
Plantillas con Cheetah, este generará una página HTML con los colores web que se consideran fiables en todos los navegadores.
from mod_python import apache
from Cheetah.Template import Template
def handler(req):
req.content_type = 'text/plain'
req.write(generaWebSafeColors(req))
return apache.OK
def generaWebSafeColors(req):
colores = []
tmp = []
for x in range(0,256, 51):
for y in range(0,256, 51):
for z in range(0,256, 51):
tmp.append("rgb(%d, %d, %d)" % (x, y, z)) colores.append(tmp)
tmp = []
return str(Template(file='/var/www/websafecolors.tmpl', searchList=[{'colores': colores}])) Si te fijas en el script, este abre un archivo llamado
"websafecolors.tmpl" situado en /var/www/, corrige la ruta si es necesario, aquí tienes su contenido.
<html>
<head>
<style>
td { width: 10px; height: 5px;}</style>
</head>
<body>
<h1>Tabla de colores WebSafe</h1>
<table cellspacing='0'>
#for $row in $colores
<tr>
#for $color in $row
<td style='background-color: $color'></td>
#end for
</tr>
#end for
</table>
</body>
</html>
Nombrado el probalotodo del UkaBlog
Fer se ha ofrecido como probalotodo del ukablog, así que si véis que algo no funciona me enviáis un comentario y os paso su correo, así podré por fin quitar el pipe que tenía puesto, ya sabes, el: cat "insulto" > /dev/null, ahora será un lindo cat "problemas" > /dev/fer.