Migración a Wordpress usando Python para Campaña Ropa Limpia

Migración a Wordpress usando Python para Campaña Ropa Limpia

Campaña Ropa Limpia es una red de asociaciones cuyo objetivo es “mejorar las condiciones de las personas trabajadoras de la industria global de la confección”. Para la difusión de su trabajo cuentan con el sitio ropalimpia.org. Este sitio estaba construido sobre una aplicación personalizada sobre el lenguaje PHP. Junto a nuestros socios de FreePress migramos la web desde esa aplicación al sistema Wordpress (construido también con el lenguaje de programación PHP).

En la fase inicial de la migración, se sacaron los datos de la aplicación personalizada utilizando la funcionalidad de introspección de bases de datos del ORM (Object Relational Mapping) Peewee [1] (programada en el lenguaje Python). Esta funcionalidad genera modelos automáticamente desde las tablas para utilizarse al momento y realizar consultas expresivas, insertados, etc. fácilmente sin necesitar de escribir secuencias SQL. Un ejemplo de consulta sería:

CrlTestimonios().select().where(visible == 1)

Los resultados de las consultas realizadas con Peewee son datos y objetos python fácilmente manipulables.

Los datos obtenidos de esta manera se han introducido en el Wordpress usando el API XML-RPC que nos ofrece el propio Wordpress, usando una librería Python [2], tanto los posts como la creación de recursos multimedia.

Previamente se limpiaba el contenido usando una librería de limpieza HTML liberada por la fundación Mozilla llamada Bleach [3]. Esta limpieza evita que código HTML extraño en los contenidos migrados puedan afectar negativamente al diseño y estilo realizado por FreePress.

Aunque parezca ridículo el utilizar para una migración un lenguaje diferente a los del gestor de contenidos de origen y destino, sin embargo un código ad-hoc (“custom” que llamamos o personalizado), aunque sea utilizando PHP Symfony como es el caso, es tan diferente de comprender y revertir del API de Wordpress como ambos lo son de Python.

La consistencia de las aplicaciones en Python acelera el proceso, junto con una documentación frecuentemente más clara que sus homólogas en PHP (por ejemplo, Doctrine ORM para PHP [4]). En general esto demuestra que uno de los grandes nichos de Python es precisamente la de “pegamento” (glue) para unir o trasvasar datos entre sistemas heterogéneos.


  1. http://docs.peewee-orm.com/en/latest/
  2. https://pypi.python.org/pypi/wordpress-api/1.2.1
  3. https://github.com/mozilla/bleach
  4. http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/


Historias relacionadas

Respuestas JSON con Timber

Respuestas JSON con Timber

Nuestro enfoque es construir sitios web rápidos y fácilmente mantenibles y actualizables a medio/largo plazo gracias a un reducido número de dependencias.

A pesar de que nuestra plataforma de preferencia es Python/Django, los tiempos cambian y las modas se imponen. Atrás quedaron el PHP-Nuke, Post-Nuke, Xoops, Mambo, Spip, Joomla. Ahora Wordpress está en ...

Mapas interactivos sin usar Google Maps

Mapas interactivos sin usar Google Maps

Leaflet es una librería JavasScript de código abierto para embeber mapas. Es una librería perfecta para sustituir a Google Maps en los sitios en que queremos incluir un mapa de situación de nuestro negocio o una serie de marcadores con direcciones de interés.

Recientemente, hemos utilizado esta librería en el proyecto Podorunners, en el que ...

Solicítanos información

 Tel: (+34) 983 070 900