Python y SQLite son la excelente solucion para proyectos ligeros, en esta ocasion veremos un ejemplo de CRUD , Create, Read, Update, Detele.
Vamos a usar el programa sqliteman para crear la base de datos y para ver o debugear que los registros y operaciones se estan ejecutando de manera correcta.
Primero vamos a instalar sqlite3 y sqliteman en linux.
sudo apt-get install sqlite3 sqliteman
Nota. Si estas en Windows debes descargar Sqlite man desde SourceForge
Despues abriremos la aplicacion sqliteman y crearemos un nuevo archivo, el cual guardaremos con el nombre de “contacts” y lo pondremos en una carpeta, despues crearemos una tabla que usaremos:
create table person( id integer not null primary key, name varchar(255), lastname varchar(255), phone varchar(255), address varchar(255) );
Y veremos algo asi en el sqliteman:
Ahora, vamos con python, abrimos nuestro editor de codigo favorito, sublimetext en mi caso, y creamos un nuevo script en pytohn y lo guardaremos en la misma carpeta donde guardemos el archivo “contacts” que creamos con el sqliteman.
Conexion aSqlite
La conexion de python con sqlite es simple, debido a que no se requiere nombre de usuario, contrase~a, no base de datos como en otros entornos, aqui simplemente nos conectamos al archivo que creamos:
import sqlite3
con = sqlite3.connect("contacts")
cur = con.cursor()El import sqlite3 es donde incluimos las clases y metodos de sqlite, y en la segunda linea nos conectamos al archivo “contacts”, si ustedes usan otro nombre de archivo, deben modificar el script.
La tercera linea, el cursor, es necesario para ejecutar consultas.
Insertar registros en la tabla
Para insertar registros en la tabla usaremos el cursor y el metodo execute.
# Insertar conexion
contact = ('Agustin','Ramos','9141183199','Tabasco, Mexico')
cur.execute("insert into person (name,lastname,phone,address) values (?,?,?,?)",contact)Usamos un array o lista, que despues se pasa como parametro a la funcion execute.
Los elementos de la lista deben coincidir con el orden de los simbolos de interrogacion de la consulta SQL, es decir, al ejecutar la consulta los simbolos de interrogacion se traduciran en su valor correspondiente en el array.
Es posible obtener el id del ultimo id insertado mediante cur.lastrowid
Actualizar registros
Para actualizar los registros de la tabla usaremos basicamente la misma tecnica que para insertar:
# Agregar conexion
contact2 = ('Sebastian','Ramos','9371062558','Tabasco, Mexico',2)
cur.execute("update person set name=?,lastname=?,phone=?,address=? where id=?",contact2)Eliminar registros
Para eliminar seguimos el mismo formato.
cur.execute("delete from person where id=?",('3'))Recorrer o mostrar los registros
Para hacer un recorrido de los datos de la tabla:
for row in cur.execute('SELECT * FROM person'):
print rowRecordemos que el print row, debe estar a 4 espacios en la siguiente linea despues del for.
Finalizando
Una vez que termina el script los datos insertados no quedan guadados en el archivo, debemos ejecutar al final del script:
con.commit()
Ejecutar
Para ejecutar el archivo debemos llamarlo desde una terminal, en mi caso el codigo fuente lo guarde en un archivo llamado app.py: python app.py
Descargar
Les dejo el enlace de descarga con codigo completo, la base de datos en SQL y la base de datos de sqlite.
Link: https://drive.google.com/file/d/0B4VwLG0Dpi3tbzljdUZOeVlXbk0/view?usp=sharing
Si quieres un ejemplo mas completo y practico mira Inventory Py: Aplicacion para Inventario sencillo con Python y Sqlite. Ya puedes poner en practica todo lo aprendido !
