Archivo de la etiqueta: utf8

Enviar email con valores de una base de datos UTF-8 en Python

Si tenemos un base de datos MySQL y queremos enviar emails usando la librería smptlib de python, nos puede dar más de un quebradero de cabeza si queremos usar la codificación UTF-8. Pongo aquí este breve manual que he hecho con la ayuda de Héctor, un compañero del proyecto en el que estoy trabajando ahora mismo.

Si usamos la librería MySQLdb, tendremos que añadir unos parámetros adicionales para indicarle que nos vamos a conectar a una base de datos con codificación UTF-8.

Ahora creamos el mensaje a enviar:

Y por último, lo enviamos a través del servidor de correo:

Haciendo un planet en python

La práctica 5 de AAP consistía en crear un programa que recogiese las noticias de diferentes fuentes y las mostrase en un sólo documento HTML, lo que se viene a denominar un planet en la jerga bloguera.

En mi caso lo he programado en Python haciendo uso de la librería feedparser y genero una página HTML así como un feed usando la librería PyRSS2Gen.

He usado la codificación de caracteres utf-8 en todo momento, pero tengo un problema al generar el archivo html ya que no se guarda como utf-8 (si lo abrimos con un editor como geany podemos comprobar que está «sin codificación»), y luego al mostrarlo en el navegador no se ve bien. El caso es que en mi máquina sí se muestra correctamente, pero en el servidor donde lo he alojado no, como podéis ver en http://swecai.ugr.es/~planet_etsiit. Si en el navegador seleccionáis la codificación unicode, se ve bien, e incluso en el header está el meta indicando que es utf-8. ¿Alguna idea de cómo solucionar esto? Editado: blaxter ha dado con la tecla en este comentario. ¡Gracias!

Podéis descargar la aplicación libremente: planet.tgz. En el fichero index.html viene una descripción más detallada del trabajo realizado y en la carpeta scripts se encuentra el fichero actualizar.py que se encarga de generar los ficheros planet.html y feed.xml a partir de los feeds situados en sites.txt cada cierto tiempo, que podemos indicar usando una tarea cron.