Descargar e instalar SQLite para Python
Como hemos mencionado al inicio Python tiene soporte para la mayoría de las bases de datos, simplemente tenemos que descargar e instalar el módulo correspondiente, en Linux incluso muchos de los módulos los podemos descargar a través del administrador de paquetes.
Para instalar SQLite debemos primero bajar los archivos necesarios iniciando por http://pysqlite.org que es la página donde conseguiremos el módulo de Python, si estamos trabajando con Windows lo más seguro es que con la descarga del módulo, también obtengamos el motor de base de datos como tal, incluido en la instalación. Una vez instalado ya podemos empezar a utilizar el módulo.
También en versiones de Python como la 2.7 tenemos entre las librerías estándar el módulo sqlite3 con lo cual es más sencillo ya que no debemos descargar e instalar nada, simplemente podemos iniciar las pruebas importando el módulo mencionado.
Pasos iniciales
Una vez terminado el proceso de configuración del módulo ya podemos empezar a trabajar en nuestra aplicación lo primero que debemos conocer es como crear una base de datos para nuestro programa, para ello utilizaremos el método connect y de esta forma obtener el objeto que nos servirá para interactuar con SQLite. Para realizar esto haremos lo siguiente:
Como vemos en la imagen, lo primero que hacemos es importar el módulo, luego establecemos la conexión, al hacerlo le decimos que nuestra base de datos se va a llamar somedatabse.db, con esto SQLite creará un archivo donde colocará el motor de base de datos, en este caso se creará en el mismo directorio de nuestro programa.
Luego debemos obtener un cursor que es el objeto que nos ayudará a interactuar con el motor de base de datos. Para crear el cursor tenemos lo siguiente:
Por último, tenemos dos métodos: el primero para salvar efectivamente lo que ejecutemos en el archivo y el segundo para poder cerrar la conexión a base de datos, veamos cada uno de ellos:
Ya tenemos cubierta la parte básica, que tal si ahora realizamos una pequeña aplicación de pruebas donde apliquemos estos conocimientos:
Digamos que queremos abrir un archivo de texto y su contenido pasarlo a una base de datos de forma que podamos hacer las consultas utilizando queries SQL para agilizar la localización de contenido, asumamos que nuestro archivo tiene la siguiente estructura:
~07276~^~HORMEL SPAM ... PORK W/ HAM MINCED CND~^ ... ^~1 serving~^^~~^0
Donde cada campo inicia con una ~ y está separado de otros campos por ^ , veamos cómo quedaría nuestro código:
import sqlite def convert(value): if value.startswith('~'): return value.strip('~') if not value: value = '0' return float(value) conn = sqlite.connect('food.db') curs = conn.cursor() curs.execute(''' CREATE TABLE food ( id TEXT PRIMARY KEY, desc TEXT, water FLOAT, kcal FLOAT, protein FLOAT, fat FLOAT, ash FLOAT, carbs FLOAT, fiber FLOAT, sugar FLOAT ) ''') field_count = 10 markers = ', '.join(['%s']*field_count) query = 'INSERT INTO food VALUES (%s)' % markers for line in open('ABBREV.txt'): fields = line.split('^') vals = [convert(f) for f in fields[:field_count]] curs.execute(query, vals) conn.commit() conn.close()
Las partes que debemos destacar acá son el uso del objeto curs que nos ayuda a crear la base de datos y luego el curs.execute() donde le pasamos el query y los valores que hemos procesado del archivo, al final del procesamiento hacemos un conn.commit() para que lo ejecutado se guarde en el archivo y luego con conn.close() cerramos la conexión a base de datos.