[ Foro de Python ]
Hola a todos:
Principante de Python, tratando de entender que pasa con esta tabla y un registro nuevo.
Estoy siguiendo un "tutorial" para crear una aplicacion con Tkinter y una base de datos de sqlite3, de este video:
https://www.youtube.com/watch?v=7QqDQEZ3FTI
El código trabaja bien: crea la base de datos, le agrega una tabla, etc.
Pero cuando pasa a la parte de agregar un registro pasa lo siguiente:
La base de datos se llama peliculas y la tabla tambien se llama peliculas.
- La app se "detiene"
- No guarda el registro
- Se crea una segunda base de datos con nombre "peliculas.db-journal".
Cuando cierro la app, esta segunda base de datos desaparece y el registro nuevo jamas se guarda.
Ya hice una "prueba por fuera" sin el tkinter y algo muy sencillo y si funciona.
Este es el código que no funciona, especificamente la funcion SALVA.
Porfavor, ¿podrían ayudarme con alguna sugerencia?, gracias.
from model.conexion_db import conexionDB
from tkinter import messagebox
def crear_tabla():
conexion = conexionDB()
sql = '''
CREATE TABLE peliculas(
id INTEGER,
nombre VARCHAR(50),
duracion VARCHAR(10),
genero VARCHAR(50),
PRIMARY KEY(id AUTOINCREMENT)
)
'''
try:
conexion.cursor.execute(sql)
conexion.cerrar()
tit = "Crear Registro"
mensa = "Se creó la tabla en la DB"
messagebox.showinfo(tit, mensa)
except:
tit = "Crear Registro"
mensa = "La tabla ya existe"
messagebox.showwarning(tit, mensa)
def borrar_tabla():
try:
conexion = conexionDB()
sql = 'DROP TABLE peliculas'
conexion.cursor.execute(sql)
conexion.cerrar()
tit = "Eliminar Registro"
mensa = "Se eliminó la tabla en la DB"
messagebox.showinfo(tit, mensa)
except:
tit = "Eliminar Registro"
mensa = "La tabla no existe"
messagebox.showerror(tit, mensa)
class pelucula:
def __init__(self, nombre, duracion, genero):
self.id = None
self.nombre = nombre
self.duracion = duracion
self.genero = genero
def __str__(self):
return f'peliculas[{self.nombre}, {self.duracion}, {self.genero}]'
def salva(peli): #quitale pelicula mientras pruebas
conexion = conexionDB()
nnombre = "yo"
nduracion = "20.5"
ngenero = "no sabo"
sql = f"""INSERT INTO peliculas (nombre, duracion, genero) VALUES('{peli.nombre}', '{peli.duracion}', '{peli.genero}')"""
#sql = f"""INSERT INTO peliculas (nombre, duracion, genero) VALUES('{nnombre}', '{nduracion}', '{ngenero}')"""
try:
conexion.cursor.execute(sql)
conexion.cerrar
except:
tit = "Conexión al Registro"
mensa = "La tabla peliculas no existe"
messagebox.showerror(tit, mensa)