Conexión Python – MySQL

En esta ocasión nos conectaremos a MySQL desde Python. Primeramente descargar la librería necesaria para hacer dicha conexión. Para esto lo podemos hacer desde consola:

$sudo apt-get install python-mysqldb

ó bien podemos usar el gestor de paquetes synaptic. Ambos métodos si estas usando la distribución Debian o alguna basada en ella.

Una vez que tenemos instalada la librería, nos logeamos en MySQL para crear una base de datos de prueba y una tabla para poder manipular registros en ella:

Cómo se muestra en la figura anterior los pasos que tenemos que seguir son los siguientes:

1.Arrancar el servicio MySQL: $sudo /etc/init.d/mysql start
2.Logearnos en MySQL: $mysql -u root -p
3.Proporcionar el password de la cuenta de MySQL
4.Crear una base de datos (conexion). create database conexion
5.Ponerla en uso.
6.Crear una tabla (alumno) create table alumno( nombre varchar(40), carrera varchar(40), grado integer);

Después de haber creado la base de datos y una tabla dentro de ella, vamos a hacer los pequeños scripts para hacer las operaciones básicas. Vamos a manejar ejemplos muy sencillos para que se puedan apreciar las lineas de código que hacen la conexión. Daremos inicio con un script para insertar registros:

Usando el editor de textos de tu preferencia (gedit) creamos un nuevo archivo llamado altaalumno.py y escribimos lo siguiente:

Analizaremos el script línea por línea.

Import MYSQLdb <— En esta línea es donde importamos la librería que descargamos e instalamos.

db=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”lospotrillos”,db=”conexion”) <– En esta línea es donde hacemos la conexión con MySQL, se usa un método de la librería recien importado llamado “conect”, dicho método dentro de su parentesis de parametros, se le especifica el host, que por el momento como estamos trabajando en nuestra misma computadora será “localhost”, tambien especificamos el usuario con el que nos queremos conectar al servidor de base de datos, y la contraseña de dicho usuario; en este caso los haremos con el usuario “root” y su respectivo password, finalmente colocamos el nombre de la base de datos que vamos a abrir con la conexión. Toda esta línea de conexión se estamos asignando a un identificador al cual yo le nombre “db”, de esta forma se estará creando un objeto con ese nombre y con otros métodos muy particulares, como el método cursor() que es el que mantiene la conexión al servidor de base de datos y sirve como una especie de socket entre nuestro inteprete de python y el servidor de base de datos MySQL.

nombre=raw_input(“Escribe el nombre del alumno: “)
carrera=raw_input(“Escribe la carrera: “)
grado=input(“Escribe grado que cursa: “)

En las tres líneas anteriores simplemente estamos asignando valores que el usuario especifique desde el teclado a variables, el identificador nombre y carrera, van a almacenar datos de tipo cadena, por lo cual los recogemos con la función raw_input, mientras que el identificador grado recogera un valor de tipo número por lo cual usamos la función input para capturar el valor escrito por el usuario desde el teclado.
En la línea: values = (nombre, carrera, grado). Estamos creando un array o vector (heterogeneo) con los valores de las variables que acabamos de solicitarle al usuario, dicho vector se usará ya que para insertar el valor de una o más variables dentro de una cadena una instrucción mysql solo se puede hacer desde un sólo identificador.

Finalmente en la línea: cursor.execute(“insert into alumno (nombre, carrera, grado) values(%s, %s, %s)”, values)

Estamos utilizando un método de cursor, que se llama execute, que es el que se encarga de ejecutar las instrucciones MySQL que colquemos dentro de nuestros scripts. Dentro de la cadena de MySQL en la parte donde deben de ir los valores a insertar, colocamos una mascara %s por cada valor a insertar, algo que me hace recordar cuando usaba C++ y quería imprimir los valores de las variables dentro de una cadena. El segundo parametro del método execute será el vector que llenamos con los valores líneas arriba, los valores se iran insertando en la tabla posición por posición de acuerdo esten acomodados en el vector, por lo cual hay que tener cuidado a la hora de generar el vector.

Con esto cerramos, como podemos ver las conexiones con MySQL desde Python son mucho más fáciles que con otros lenguajes. En los siguientes Posts vamos a hacer consultas, modificaciones y eliminaciones, aunque todo es lo mismo.

SaluLINUX

Powered By DT Author Box

Written by chris

Conexión Python-MySQL

2 thoughts on “Conexión Python-MySQL

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: