CRUD con Python y SQLite


Python y SQLite son la excelente solucion para proyectos ligeros, en esta ocasion veremos un ejemplo de CRUD y usaremos la aplicacion sqliteman para crear la base de datos y las tablas.

Primero vamos a instalar sqlite3 y sqliteman

[code]

sudo apt-get install sqlite3 sqliteman

[/code]

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:

[code language=”sql”]

create table person(
id integer not null primary key,
name varchar(255),
lastname varchar(255),
phone varchar(255),
address varchar(255)
);

[/code]

Y veremos algo asi en el sqliteman:

screenshot-at-2016-10-08-21-53-04

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

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:

[code language=”python”]

import sqlite3
con = sqlite3.connect("contacts")
cur = con.cursor()

[/code]

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

Para insertar usaremos el cursor y el metodo execute.

[code language=”python”]

contact = (‘Agustin’,’Ramos’,’9141183199′,’Tabasco, Mexico’)
cur.execute("insert into person (name,lastname,phone,address) values (?,?,?,?)",contact)

[/code]

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

Para actualizar usaremos basicamente la misma tecnica que para insertar:

[code language=”python”]

contact2 = (‘Sebastian’,’Ramos’,’9371062558′,’Tabasco, Mexico’,2)
cur.execute("update person set name=?,lastname=?,phone=?,address=? where id=?",contact2)

[/code]

Eliminar

Para eliminar seguimos el mismo formato.

[code language=”python”]

cur.execute("delete from person where id=?",(‘3’))

[/code]

Recorrer

Para hacer un recorrido de los datos de la tabla:

[code language=”python”]

for row in cur.execute(‘SELECT * FROM person’):
print row

[/code]

Recordemos 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:

[code language=”python”]

con.commit()

[/code]

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

Codigo completo

Les dejo el codigo completo, la base de datos en SQL y la base de datos de sqlite.

[sociallocker]

https://drive.google.com/file/d/0B4VwLG0Dpi3tbzljdUZOeVlXbk0/view?usp=sharing

[/sociallocker]

Leave a comment