Cargando



Python - SQLite

En este tutorial veremos cómo trabajar con SQLite que es un motor de base de datos ligero en conjunto con Python, que requiere poca configuración y que podemos utilizar para nuestros proyectos pequeños y de prueba.


nov 25 2013 17:36
Profesional
nov 25 2013 18:23
Python tiene soporte para la mayoría de los motores de bases de datos SQL, lo que nos da la posibilidad de elegir el que mejor se adapte a lo que queremos lograr con nuestro programa y a nuestros conocimientos.

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:

python_sqllite1.jpg


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:




python_sqllite2.jpg


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:




python_sqllite3.jpg


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.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X