SqlAlchemy Intro (1): Engine.


*Disclaimer: No tengo la carrera de ingeniería informática, soy un aficionado!

TLDR: Para trabajar con SQLAlchemy necesitamos crear el objeto Engine.

¿Qué es esto?

En algún momento necesitaré interactuar con bases de datos. Quizá aprender SQLAlchemy haga el trabajo un poco menos pesado, así que esto van a ser un poco mis apuntes y notas.

Pasamos a 2.0.

Parece que en la versión 1.4 hay un cambio de paradigma y se convertirá en la 2.0.

Utilizaremos la guía oficial.

Como síntesis parece que la gran diferencia entre la 1.3 y la 1.4 es:

The ORM now uses Core-style querying with the select() construct, and transactional semantics between Core connections and ORM sessions are equivalent.

En cuanto al resto nos vamos a olvidar de las diferencias entre 1.3 y 1.4 ya que no sabíamos nada de la 1.3. XD. Vamos directamente a la 2.0.

API's.

SQLAlchemy Tiene dos API's para interactuar con las bases de datos: CORE y ORM.

ORM: The ORM provides an additional configuration layer allowing user-defined Python classes to be mapped to database tables and other constructs, as well as an object persistence mechanism known as the Session.

CORE: The library provides tools for managing connectivity to a database, interacting with database queries and results, and programmatic construction of SQL statements.

Estableciendo conexión - The Engine:

Engine és el objeto que actúa como fuente central de todas las conexiones a la base de datos. Es lo primero que hay que definir.

Se crea con la función create_engine(url, **kwargs). El argumento principal es un string que contiene la dirección de la base de datos además de otros argumentos necesarios para la conexión. Profundizaré más adelante acerca de este string.

Es importante que uno de los argumentos sea future=True, esto nos permitirá hacer uso del estilo de la versión 2.0.

>>> from sqlalchemy import create_engine
>>> engine = create_engine("sqlite+pysqlite:///:memory:", echo=True, future=True)