65. Práctica guiada VII
Vídeo
Notas personales
En esta lección, abordaremos cómo borrar registros (operación de tipo Delete) y la creación de consultas parametrizadas.
En cuanto a la primera tarea, empecemos construyendo la correspondiente función:
# Función que borra registros de la BBDD
def crud_delete():
conexion = sqlite3.connect("usuarios")
cursor = conexion.cursor()
cursor.execute("DELETE FROM DATOS_USUARIOS WHERE ID=" + id_data.get())
conexion.commit()
conexion.close()
messagebox.showinfo(
title="Borrar registro",
message="Registro borrado con éxito en la base de datos.")
Acto seguido, añadimos la funcionalidad, tanto al elemento del menú asociado, como al botón correspondiente:
crud_menu.add_command(label="Borrar", command=crud_delete)
delete_button = Button(botones_frame, text="Delete", command=crud_delete)
A continuación, analicemos cómo modificar algunas de las consultas SQL para hacerlas parametrizadas y que su escritura sea mucho más sencilla:
# Función que inserta registros en la BBDD
def crud_create():
conexion = sqlite3.connect("usuarios")
cursor = conexion.cursor()
datos = name_data.get(), lastname_data.get(), address_data.get(), password_data.get(), comment_text.get("1.0", END)
cursor.execute("INSERT INTO DATOS_USUARIOS VALUES (NULL, ?, ?, ?, ?, ?)", (datos))
conexion.commit()
messagebox.showinfo(
title="Crear registro",
message="Registro insertado con éxito en la base de datos.")
conexion.close()
# Función que actualiza registros de la BBDD
def crud_update():
conexion = sqlite3.connect("usuarios")
cursor = conexion.cursor()
datos = name_data.get(), lastname_data.get(), address_data.get(), password_data.get(), comment_text.get("1.0", END)
cursor.execute("UPDATE DATOS_USUARIOS SET NOMBRE_USUARIO=?, APELLIDO=?, DIRECCION=?, PASSWORD=?, COMENTARIOS=? WHERE ID=" + id_data.get(), (datos))
conexion.commit()
messagebox.showinfo(
title="Actualizar registro",
message="Registro actualizado con éxito en la base de datos.")
conexion.close()
Finalmente, como extra, incluyamos funcionalidad para los dos elementos del menú Ayuda:
# Función licencia
def licencia():
messagebox.showwarning(title="Licencia",
message="Producto bajo licencia GNU.")
# Función acerca de...
def acerca_de():
messagebox.showinfo(title="Acerca de...",
message="Aplicación creada por Alexis Sáez.")
Ahora, incorporemos dicha funcionalidad en los elementos del menú:
help_menu.add_command(label="Licencia", command=licencia)
help_menu.add_command(label="Acerca de...", command=acerca_de)
Código fuente
El código fuente y los posibles ficheros externos generados correspondientes a esta lección se encuentran disponibles para su consulta en la carpeta /lecciones/65/
del
repositorio.