Como todos sabemos, Firebird a partir de LibreOffice 6.3 es al nuevo motor de base de datos de facto. Tarde o temprano tendremos que migrar todo a este motor o cualquier nuevo desarrollo "debería" usarlo de forma predeterminada.
Casi cualquier lenguaje moderno, tiene algún manejador de bases de datos de modos que no tengamos (casi) que tocar una línea de SQL. A esta herramienta se llama Object-relational mapping u ORM, y la mayoría son una maravilla. Por supuesto, en Python hay varios muy buenos, pero como nos gustan las cosas sencillas, yo uso que no requiere ninguna dependencia y que es extensible, es decir, que se puede adaptar a otras base de datos, que es la prueba de concepto que hice y ha funcionado de maravilla.
Una prueba de concepto, con un código como el siguiente:
Código: Seleccionar todo
import uno
import easymacro as app
from peewee import *
from lobase_ext import LOBaseDatabase
path_db = '/home/mau/people.odb'
db_name = 'people'
db = LOBaseDatabase(db_name)
class BaseModel(Model):
class Meta:
database = db
class Person(BaseModel):
name = CharField()
last_name = CharField()
def main():
if not app.exists_path(path_db):
obj = app.new_db(path_db)
db.connect()
db.create_tables([Person], safe=False)
p = Person(name='Teresa', last_name='Salgueiro')
p.save()
Person.insert(name='Naomi', last_name='Watts').execute()
people = [
{'name': 'Sofia', 'last_name': 'Loren'},
{'name': 'Soledad', 'last_name': 'Villamil'},
{'name': 'Irene', 'last_name': 'Azuela'},
]
for p in people:
Person.insert(**p).execute()
return
De aquí al infinito.
P.D. No intenten copiar y ejecutar este código, requiere su explicación, que documentaré más adelante.