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

Campo de búsqueda "responsive" con transiciones CSS

Campo de búsqueda "responsive" con transiciones CSS

El desarrollo de una barra de navegación responsive estándar con Bootstrap es sencillo. La cosa se complica en dispositivos móviles pequeños cuando queremos incluir varias funcionalidades diferentes y que siempre estén presentes. Para la web efisioterapia.net que funciona sobre Drupal 7, además de solucionar el reto de tener un campo de búsqueda siempre presente ...

Ejemplos de enlace "Leer más" con jQuery y CSS

Ejemplos de enlace "Leer más" con jQuery y CSS

Es habitual que en determinados casos nos soliciten que textos más o menos largos se presenten en forma abreviada con la posiblidad de desplegarlos completamente o volverlos a ocultar.

Si no tenemos acceso a las plantillas generadas por el gestor de contenido, una forma sencilla de hacerlo es mediante Javascript. En nuestros desarrollos por lo ...

Efecto "slide" con CSS. Selectores y transiciones

Efecto "slide" con CSS. Selectores y transiciones

Recientemente hemos desarrollado un tema visual responsive para la web efisioterapia.net que funciona sobre Drupal 7. Basado en bootstrap, el tema visual debía cumplir los requerimientos de sencillez y limpieza y estar orientado principalmente a los dispositivos móviles. Para no recargar el ya excesivo código que genera el propio drupal y evitar así contruibuir ...

Solicítanos información

 Tel: (+34) 983 070 900

    Envía un correo