SQLAlchemy – Dialectos

SQLAlchemy utiliza un sistema de dialectos para comunicarse con varios tipos de bases de datos. Cada base de datos tiene un contenedor DBAPI correspondiente. Todos los dialectos requieren la instalación del controlador DBAPI apropiado.

Los siguientes dialectos están incluidos en la API de SQLAlchemy:

  • Pájaro de fuego
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL
  • Sybase

El objeto de motor basado en URL es creado por la función create_engine (). Estas URL pueden incluir nombre de usuario, contraseña, nombre de host y nombre de la base de datos. Puede haber argumentos de palabras clave opcionales para una configuración adicional. En algunos casos, se permite una ruta de archivo y, en otros, el «nombre de la fuente de datos» reemplaza las partes «host» y «base de datos». Una forma típica de la URL de una base de datos se ve así:

dialect+driver://username:password@host:port/database

PostgreSQL

El dialecto de PostgreSQL usa psycopg2 como DBAPI predeterminado. pg8000 también está disponible como un reemplazo puro de Python, como se muestra a continuación:

# default
engine = create_engine('postgresql://scott:tiger@localhost/mydatabase')

# psycopg2
engine = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')

# pg8000
engine = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')

MySQL

El dialecto MySQL usa mysql-python como DBAPI predeterminado. Hay muchas DBAPI de MySQL disponibles, por ejemplo, MySQL-connector-python como se muestra a continuación:

# default
engine = create_engine('mysql://scott:tiger@localhost/foo')

# mysql-python
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

# MySQL-connector-python
engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')

Oracle

El dialecto de Oracle usa cx_oracle como DBAPI predeterminado:

engine = create_engine('oracle://scott:[email protected]:1521/sidname')
engine = create_engine('oracle+cx_oracle://scott:tiger@tnsname')

Microsoft SQL Server

El dialecto de SQL Server utiliza Pyodbc como DBAPI predeterminado. pymssql también está disponible.

# pyodbc
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')

# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

SQLite

SQLite se conecta a bases de datos basadas en archivos mediante el módulo Python integrado. sqlite3 defecto. Dado que SQLite se conecta a archivos locales, el formato de URL es ligeramente diferente. La parte del «archivo» de la URL es el nombre del archivo de la base de datos. La ruta del archivo relativa requiere tres barras diagonales como se muestra a continuación:

engine = create_engine('sqlite:///foo.db')

Y para la ruta absoluta al archivo, las tres barras son seguidas por la ruta absoluta como se indica a continuación:

engine = create_engine('sqlite:///C:\path\to\foo.db')

Para usar SQLite: memory: database, proporcione una URL vacía como se indica a continuación:

engine = create_engine('sqlite://')

Producción

En la primera parte de este tutorial, aprendimos cómo usar el lenguaje de expresión para ejecutar declaraciones SQL. El lenguaje de expresión incorpora construcciones SQL en código Python. En la segunda parte, discutimos la capacidad de mostrar relaciones de objetos en SQLAlchemy. La API de ORM asigna tablas SQL a clases de Python.

🚫