Booklet A4/A5 - PET: Python Entre Todos - Python Argentina
Booklet A4/A5 - PET: Python Entre Todos - Python Argentina
Booklet A4/A5 - PET: Python Entre Todos - Python Argentina
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
37 SQLAlchemy, el ORM utilizado por MacGyver y Mario Baracus<br />
compatible con MySQL y da la directiva de que debemos utilizar PostgreSQL y que<br />
todo software que utilice una base de datos distinta de PostgreSQL sera condenado a<br />
jugar en la Arena de TRON!<br />
Ok, nosotros y nuestro programa se encuentran en una situación complicada, hemos<br />
de cambiar todas las consultas que hemos realizado para MySQL para que funciones<br />
con PostgreSQL o conseguirn rápidamente un frisbees<br />
(http://en.wikipedia.org/wiki/Flying_disc) y comenzar a practicar para cuando nos<br />
toque combatir en la Arena de TRON (http://en.wikipedia.org/wiki/Tron_(film)).Al<br />
margen de la quizá cómica situación y para ajustarme un poco a la charla que se dio<br />
en el PyDay de Córdoba, podríamos decir que:<br />
• Las bases de datos tienen cada una su propio dialecto.<br />
• Con <strong>Python</strong>, utilizamos drivers/conectores para poder hablar el dialecto de la<br />
DB a la cual nos conectamos y utilizamos.<br />
• El escribir en nuestro código SQL utilizando el dialecto de la DB parece no ser<br />
una buena idea, puesto que al cambiar de motor / engine de DB nos vemos<br />
obligados a tener que pasar todas nuestras queries al dialecto de la nueva DB.<br />
SQLAlchemy, el ORM utilizado por MacGyver y Mario<br />
Baracus<br />
A toda la problemática planteada anteriormente de que veníamos escribiendo queries<br />
según el engine/dialecto de nuestra DB, existe una solución y esta se llama<br />
SQLAlchemy.<br />
SQLAlchemy es un ORM y un ORM es un O*bject *R*elation *M*apper, osea: un<br />
*mapeador/conversor de las relaciones de los datos de nuestra DB a objetos. Por sino<br />
quedo claro, veamos un ejemplo:<br />
Supóngase una tabla “Persona” en nuestra DB cual tiene las columnas:<br />
• Nombre de tipo VARCHAR.<br />
• FechaNacimiento de tipo DATE.<br />
Hasta aquí es la parte relacional, ahora si nosotros representáramos esta estructura<br />
de datos con objetos en python, bien podríamos tener lo siguiente:<br />
import datetime<br />
class Persona(object)<br />
<strong>Python</strong> <strong>Entre</strong> <strong>Todos</strong> (número 3, Julio 2011) — http://revista.python.org.ar