Archivo del Blog

jueves, 2 de julio de 2009

Python y MySQL en NetBeans 6.7

En esta entrada se explicará brevemente como conectarse a MySQL Server mediante Python, para llevar a cabo la explicación se utilizará a NetBeans 6.7 como IDE, la base de datos de ejemplo Sakila de MySQL y Python 2.6.2.

Lo primero que se debe realizar es instalar el paquete python-mysqldb, en Ubuntu se puede realizar la instalación mediante apt-get:

sudo apt-get install python-mysqldb

El paquete también puede ser encontrado en http://sourceforge.net/projects/mysql-python/.

Con python-mysqldb instalado, en NetBeans se procede a crear un proyecto Python, para el presente ejemplo se lo denominó SimpleMySQL y se utilizará la plataforma Python propia del sistema operativo.


Al finalizar el asistente se creará un archivo por defecto llamado simplemysql.py con la siguiente estructura:

# To change this template, choose Tools | Templates
# and open the template in the editor.

__author__="edisson"
__date__ ="$05/07/2009 05:23:25 PM$"

if __name__ == "__main__":
    print "Hello World";

Antes de realizar la conexión, se creará un usuario para que pueda acceder a la base de datos sakila, para ello como usuario root en MySQL creamos al usuario python mediante la sentencia:

mysql> grant all on sakila.* to 'python' IDENTIFIED BY 'python';

Con el usuario creado, reemplazamos el contenido de simplemysql.py por:

import MySQLdb

__author__="edisson"
__date__ ="$05/07/2009 05:23:25 PM$"


def conectar():
    db = MySQLdb.connect(host='localhost',user='python',passwd='python',db='sakila')
    cursor = db.cursor()
    sql = 'select * from country'
    cursor.execute(sql)
    paises = cursor.fetchall()
    print 'Listado de Paises'
    for pais in paises:
    print pais[0],'->',pais[1];

conectar()

Al ejecutar este archivo tendremos la siguiente salida:

Listado de Paises
1 : Afghanistan
2 : Algeria
3 : American Samoa
4 : Angola
5 : Anguilla
6 : Argentina
...

Un detalle importante que recalcar es el mensaje de advertencia mostrado al ejecutar simplemysql.py:

/var/lib/python-support/python2.6/MySQLdb/__init__.py:34: DeprecationWarning: the sets module is deprecated
from sets import ImmutableSet

Esto se debe a que se está empleando Python 2.6.2 con python-mysqldb 1.2.2.7ubuntu1, éste último debe ser utilizado con Python 2.5 sin embargo este error no es intrusivo y nos va a permitir trabajar normalmente. Para evitar este problema se puede trabajar con Python 2.5 o utilizar la versión 1.2.3 de python-mysqldb pero ésta todavía se encuentra en estado de Release Candidate.

No hay comentarios.: