SQLAlchemy Core: conexión a la base de datos
En el capítulo anterior, discutimos sobre el lenguaje de expresión en SQLAlchemy. Ahora procedamos con los pasos necesarios para conectarse a una base de datos.
La clase de motor conecta un Pool and Dialect together para proporcionar una fuente de base de datos connectivity and behavior. Se crea una instancia de un objeto de la clase Engine utilizando elcreate_engine() función.
La función create_engine () toma la base de datos como un argumento. No es necesario definir la base de datos en ninguna parte. El formulario de llamada estándar tiene que enviar la URL como el primer argumento posicional, generalmente una cadena que indica el dialecto de la base de datos y los argumentos de conexión. Usando el código que se proporciona a continuación, podemos crear una base de datos.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Para MySQL database, use el siguiente comando:
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
Para mencionar específicamente DB-API para ser utilizado para la conexión, el URL string toma la forma siguiente:
dialect[+driver]://user:password@host/dbname
Por ejemplo, si está utilizando PyMySQL driver with MySQL, use el siguiente comando -
mysql+pymysql://<username>:<password>@<host>/<dbname>
los echo flages un atajo para configurar el registro de SQLAlchemy, que se logra a través del módulo de registro estándar de Python. En los capítulos siguientes, aprenderemos todos los SQL generados. Para ocultar la salida detallada, establezca el atributo de eco enNone. Otros argumentos para la función create_engine () pueden ser específicos del dialecto.
La función create_engine () devuelve un Engine object. Algunos métodos importantes de la clase de motor son:
No Señor. | Método y descripción |
---|---|
1 | connect() Devuelve el objeto de conexión |
2 | execute() Ejecuta una construcción de declaración SQL |
3 | begin() Devuelve un administrador de contexto que entrega una conexión con una transacción establecida. Tras una operación exitosa, la transacción se confirma, de lo contrario, se revierte |
4 | dispose() Elimina el grupo de conexiones utilizado por el motor |
5 | driver() Nombre del conductor del dialecto en uso por el motor |
6 | table_names() Devuelve una lista de todos los nombres de tablas disponibles en la base de datos. |
7 | transaction() Ejecuta la función dada dentro de un límite de transacción. |