Seamos serios, tratar con bases de datos así, a pelo, es un peñazo de cuidado. Por eso surgen frameworks, interfaces, abstracciones o como quieras llamarlos para facilitar esta labor. Es el caso de (aunque son muy distintos entre si) Hibernate (Java) o PDO (PHP). Para Python también hay varias opciones pero hoy te traemos una que tiene especial buena pinta: dataset.
La premisa de dataset es hacer tan sencillo manejarse con bases de datos en Python como lo es manejarse con ficheros a través de JSON y la verdad es que tiene unas características bien interesantes:
Schema automático, es decir, si escribes una tabla o una columna que no existe, se crea. Magia potagia.
Upserts, o sea, no tienes que distinguir si updateas o insertas, ya lo hace dataset por ti
Es compatible con la mayoría de las bases de datos relacionales top como MySQL, Postgre SQL, SQLite (o cualquier otra que incluya SQL en su nombre, basicamente).
La base de datos puede ser exportada de manera sencilla a través de scripts e incluyendo metadatos y nombres de ficheros dinámicos
Query helpers, como all rows en una tabla o all distinct values a través de un conjunto de columnas.
Y ya que estamos, un ejemplo de como queda el código:
import dataset
db = dataset.connect('sqlite:///:memory:')
table = db['sometable'] table.insert(dict(name='John Doe', age=37)) table.insert(dict(name='Jane Doe', age=34, gender='female'))
john = table.find_one(name='John Doe')
Elegante a la par que bello. Tiene buena pinta. Ya sabéis pythoneros, a probarlo (los que no lo hayáis hecho todavía, claro) y a darnos feedback al resto vía comentarios.
Pd: obviamente puedes forkear dataset desde Github.
Vía e imagen | dataset
Ver todos los comentarios en https://www.genbeta.com
VER 0 Comentario