LIBRERIAS: BASES DE DATOS


En python, el acceso a bases de datos esta estandarizado por la especificación Database API (DB-API), actualmente en la versión 2.0. Gracias a esto, se puede acceder a cualquier base de datos utlizando la misma interfaz.

O sea, el mismo codigo se podría llegar a usar para cualquier base de datos, tomando siempre los recaudos necesarios (lenguaje SQL estándard, estilo de parametros soportado, etc.)
Por ello, el manejo de bases de datos en python siempre sigue estos pasos:
  1. Importar el conector
  2. Conectarse a la base de datos connect
  3. Abrir un Cursor cursor
  4. Ejecutar una consulta execute
  5. Obtener los datos fetch
  6. Cerrar el cursor close
La forma más básica de como conectarse a una BD con MySQL es la siguiente:

>>> import MySQL
>>> db = MySQLdb.connect(host="localhost", user="root",
... password="mypassword", db="PythonU"

Una vez establecida la conexion, hay que crear un "cursor". 
Un cursor es una estructura de control que se usa para recorrer los records de un result set.

El metodo para crear el cursor se llama, originalmente, cursor():
>>> cursor = db.cursor()

Otro ejemplo básico de como hacerlo es con PostgreSQL, en donde se usa el esquema:
CREATE TABLE estudiante ( nombre varchar, apellido varchar, fecha date, booleano bool, PRIMARY KEY);

Primero importa el conector y entonces crea la conexión a la BD

>>> import psycopg2, psycopg2.extras
>>> conn = psycopg2.connect(database='test',user='postgres',password='pass', host='localhost')

Luego crear un cursor para obtener los datos y ejecutar consulta
>>> cur = conn.cursor()
>>> cur.execute("SELECT * FROM estudiante")
>>> rows=cur.fetchall()
>>> print rows

[['Joe', 'Capbell', datetime.date(2006, 2, 10), False, 1], ['Joe', 'Doe', datetime.date(2004, 2, 16), False, 2], ['Rick', 'Hunter', datetime.date(2005, 3, 20), False, 3], ['Laura', 'Ingalls', datetime.date(2001, 3, 15), True, 4], ['Virginia', 'Gonzalez', datetime.date(2003, 4, 2), False, 5]]

Crea el cursor similar al diccionario en lugar de que estos se pongan en una lista de valores
>>> cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
>>> cur.execute("SELECT * FROM estudiante")
>>> for row in cur: # itero sober cada fila
>>>    # row es un diccionario, con las claves = nombres de campos
>>>    print "Nombre y Apellido: %s, %s " % (row['nombre'],row['apellido'])

Nombre y Apellido: Joe, Capbell
Nombre y Apellido: Joe, Doe
Nombre y Apellido: Rick, Hunter
Nombre y Apellido: Laura, Ingalls
Nombre y Apellido: Virginia, Gonzalez




No hay comentarios:

Publicar un comentario