Monthly Archives: May 2012

Módulo mysql-python

Para interactuar con MySQL y Python, necesitaremos el modulo mysql-python (previa instalación)

Pequeñas anotaciones para trabajar con él:

Código básico para una consulta:

## importamos el módulo de mysql
import MySQLdb
 
servidor = "localhost"
usuario = "user"
clave = "password"
bd = "db"
 
### Creamos la conexión a la base de datos 
### Devuelve un objeto connetion
 
con = MySQLdb.connect(servidor, usuario, clave)
con.select_db(bd)
 
### Creamos un cursos por cada operación que queremos realizar
### sobre la base de datos. Es importante cerrarlos una vez utilizados.
 
cursor = con.cursor()
 
## Consulta a ejecutar
sql="SELECT * from table"
 
## Ejecutamos la consulta
cursor.execute(sql)
 
## Consultamos los datos obtenidos en forma de tuplas
## accedemos a ellos por índices numéricos
 
rows = cursor.fetchall()
for x in rows:
    print "%d, %s" % (x[0],x[1])
 
## Cerramos el cursos y la conexión
cursor.close()  
con.close()

Una vez que obtenemos resultados a través del cursor, podemos trabajar con los resultados a través de: fetchone, fetchmany o fetchall o usar el objeto Cursor como un iterador.

En el caso de que queramos obtener los datos devueltos por la consulta sql en forma de diccionario, a la hora de realizar la conexión incluir el parámetro MySQLdb.cursors.DictCursor

cursor = con.cursor(MySQLdb.cursors.DictCursor)

Solución a los problemas de codificación de bases de datos y a la hora de mostrarlo:

con.set_character_set('utf8')  ## conecctor
cursor.execute('SET NAMES utf8;')
cursor.execute('SET CHARACTER SET utf8;')
cursor.execute('SET character_set_connection=utf8;')

Enlaces:

En importante acostumbrarse a ejecutar el metodo commit cuando queremos que los cambios introducidos se hagan efectivos a nivel de base de datos:

con.commit()

Acentos en Python

Acentos en el código de Python

# -*- coding: utf-8 -*-

Numeración en Vim

  • ¿Cómo hacer que las líneas de VIM aparezcan numeradas?
  • :set number
  • Pero, y si una vez activadas, quiero desactivarlas ¿Cómo desactivar la visualización de las lineas en VIM?
  • :set nonumber

    Y si quieres configurarlo de forma permanente: Anotaciones rápidas para configurar vim para Python
    …esas cosas que nunca te acuerdas como hacer.