Python proporciona varias formas de conectarse a una base de datos MySQL y procesar datos. Este artículo describe tres métodos.
Las bases de datos MySQL y los usuarios ya deben existir antes de que pueda usar cualquiera de los siguientes métodos. Para obtener información sobre cómo administrar bases de datos MySQL usando cPanel, consulte este artículo.Conectando a MySQL usando Python
Antes de poder acceder a bases de datos MySQL usando Python, debe instalar uno (o más) de los siguientes paquetes en un entorno virtual:
- cliente mysql :Este paquete contiene el MySQLdb módulo. Está escrito en C y es uno de los paquetes de Python más utilizados para MySQL.
- conector mysql-python :Este paquete contiene el mysql.connector módulo. Está escrito completamente en Python.
- PyMySQL :Este paquete contiene el pymysql módulo. Está escrito completamente en Python.
Estos tres paquetes utilizan la API de base de datos SQL portátil de Python. Esto significa que si cambia de un módulo a otro, puede reutilizar casi todo su código existente (el ejemplo de código a continuación muestra cómo hacerlo).
Configuración del entorno virtual Python e instalación de un paquete MySQL
Para configurar el entorno virtual de Python e instalar un paquete MySQL, siga estos pasos:
- Inicie sesión en su cuenta usando SSH.
- Para crear un entorno virtual, escriba los siguientes comandos:
cd ~ virtualenv sqlenv
- El env virtual El comando crea un entorno virtual llamado sqlenv , y los comandos subsiguientes en este procedimiento asumen que el entorno se llama sqlenv . Puede usar cualquier nombre de entorno que desee, pero asegúrese de reemplazar todas las apariciones de sqlenv con su propio nombre de entorno.
- Si está ejecutando una versión alternativa de Python (por ejemplo, configuró manualmente una versión más nueva de Python para su cuenta como se describe en este artículo), puede especificar esa versión para el entorno virtual. Por ejemplo, para instalar una versión configurada por el usuario de Python 3.8 en el entorno virtual, podría usar el siguiente comando:
virtualenv -p /home/username/bin/python3.8 sqlenv
-
Para activar el entorno virtual, escriba el siguiente comando:
source sqlenv/bin/activate
El símbolo del sistema ahora comienza con (sqlenv) para indicar que está trabajando en un entorno virtual Python. Todos los siguientes comandos en este procedimiento asumen que está trabajando dentro del entorno virtual. Si cierra sesión en su sesión SSH (o desactiva el entorno virtual mediante el desactivar comando), asegúrese de reactivar el entorno virtual antes de seguir los pasos a continuación y ejecutar el código de muestra. -
Para actualizar pip en el entorno virtual, escriba el siguiente comando:
pip install -U pip
-
Escriba el comando para el paquete que desea instalar:
- Para instalar mysqlclient paquete, escriba el siguiente comando:
pip install mysqlclient
-
Para instalar mysql-connector-python paquete, escriba el siguiente comando:
pip install mysql-connector-python
-
Para instalar pymysql paquete, escriba el siguiente comando:
pip install pymysql
- Para instalar mysqlclient paquete, escriba el siguiente comando:
Code sample
Después de instalar un paquete MySQL en el entorno virtual, está listo para trabajar con bases de datos reales. El siguiente código de muestra de Python demuestra cómo hacer esto, así como lo fácil que es cambiar entre las diferentes implementaciones de paquetes de SQL. El código de muestra funciona con Python 2.7 y Python 3.x.
En su propio código, reemplace nombre de usuario con el nombre de usuario de la base de datos MySQL, contraseña con la contraseña del usuario de la base de datos y dbname con el nombre de la base de datos:
#!/usr/bin/python from __future__ import print_function hostname = 'localhost' username = 'username' password = 'password' database = 'dbname' # Simple routine to run a query on a database and print the results: def doQuery( conn ) : cur = conn.cursor() cur.execute( "SELECT fname, lname FROM employee" ) for firstname, lastname in cur.fetchall() : print( firstname, lastname ) print( "Using mysqlclient (MySQLdb):" ) import MySQLdb myConnection = MySQLdb.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using mysql.connector:" ) import mysql.connector myConnection = mysql.connector.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close() print( "Using pymysql:" ) import pymysql myConnection = pymysql.connect( host=hostname, user=username, passwd=password, db=database ) doQuery( myConnection ) myConnection.close()
Este ejemplo crea una serie de Conexión objetos que abre la misma base de datos usando diferentes módulos MySQL. Debido a que los tres módulos de MySQL usan la interfaz API de la base de datos SQL portátil, pueden usar el código en doQuery() funcionar sin ninguna modificación.
Cuando tienes una conexión asociado con una base de datos, puede crear un Cursor objeto. El cursor objeto le permite ejecutar ejecutar() que a su vez le permite ejecutar instrucciones SQL sin formato (en este caso, un SELECT consulta en una tabla llamada empleado ).
Como puede ver, la API de base de datos SQL portátil de Python hace que sea muy fácil cambiar entre módulos MySQL en su código. En el ejemplo anterior, los únicos cambios de código necesarios para usar un módulo diferente son importar y conectar declaraciones.Más Información
- Para obtener más información sobre la API de base de datos SQL portátil de Python, visite https://www.python.org/dev/peps/pep-0249.
- Para obtener más información sobre mysqlclient paquete, visite https://pypi.org/project/mysqlclient.
- Para obtener más información sobre mysql-connector-python paquete, visite https://pypi.python.org/pypi/mysql-connector-python.
- Para obtener más información sobre PyMySQL paquete, visite https://pypi.python.org/pypi/PyMySQL.