Advertisement
teslariu

adminDB

Feb 20th, 2021
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.35 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #
  4. # script para administrar la db productos.db
  5.  
  6. import sqlite3
  7.  
  8. while True:
  9.     conn = sqlite3.connect("productos.db")
  10.     cursor = conn.cursor()
  11.    
  12.     print("""
  13.    Menú de administración de la base de datos 'productos'
  14.    *----------------------------------------------------*
  15.        1. Agregar un nuevo registro
  16.        2. Ver registros
  17.        3. Borrar registros
  18.        4. Modificar registros
  19.        5. Salir
  20.    *----------------------------------------------------*
  21.    """)
  22.    
  23.     opcion = input("Ingrese su opción: ")
  24.    
  25.     if opcion == "1":
  26.        
  27.         while True:
  28.             try:
  29.                 ID = int(input("Ingrese el ID: "))
  30.             except ValueError:
  31.                 print("El ID debe ser un nro entero")
  32.             else:
  33.                 break
  34.                        
  35.         nombre = input("Ingrese el nombre: ")
  36.        
  37.         while True:
  38.             try:
  39.                 precio = float(input("Ingrese el precio: "))
  40.             except ValueError:
  41.                 print("El ID debe ser un nro entero")
  42.             else:
  43.                 break
  44.            
  45.         try:
  46.             cursor.execute("INSERT INTO productos VALUES (?,?,?)", (ID,nombre,precio))
  47.         except sqlite3.OperationalError:
  48.             print("La consulta no se ejecutó correctamente")
  49.         else:
  50.             conn.commit()
  51.             print("Datos cargados correctamente")
  52.  
  53.        
  54.        
  55.        
  56.     elif opcion == "2":
  57.         try:
  58.             cursor.execute("SELECT * FROM productos ORDER BY ID")
  59.         except sqlite3.OperationalError:
  60.             print("La consulta no se ejecutó correctamente")
  61.         else:
  62.             datos = cursor.fetchall()
  63.             if datos:
  64.                 for ID,nombre,precio in datos:
  65.                     print(ID,nombre,precio)
  66.             else:
  67.                 print("No hay datos en la base")
  68.            
  69.  
  70.     elif opcion == "3":
  71.         # valido el ID a borrar
  72.         while True:
  73.             try:
  74.                 ID_a_borrar = int(input("Ingrese el ID: "))
  75.             except ValueError:
  76.                 print("El ID debe ser un nro entero")
  77.             else:
  78.                 break
  79.         # me fijo si existe el ID en la base de datos        
  80.         try:
  81.             cursor.execute("SELECT * FROM productos")
  82.         except sqlite3.OperationalError:
  83.             print("La consulta no se ejecutó correctamente")
  84.         else:
  85.             datos = cursor.fetchall()
  86.             borrar = False
  87.             for ID,nombre,precio in datos:
  88.                 if ID_a_borrar == ID:
  89.                     borrar = True
  90.        
  91.         # si existe el ID lo borro
  92.         if borrar is True:
  93.             try:
  94.                 cursor.execute("DELETE FROM productos WHERE id = {}".format(ID))
  95.             except sqlite3.OperationalError:
  96.                 print("No se pudo borrar el registro.")
  97.             else:
  98.                 conn.commit()
  99.             print(f"Se ha borrado exitosamente el registro con ID = {ID}")
  100.         else:
  101.             print(f"No existe el producto con ID={ID_a_borrar}")
  102.        
  103.        
  104.     elif opcion == "4":
  105.         pass
  106.        
  107.     elif opcion == "5":
  108.         conn.close()
  109.         print("Hasta luego...")
  110.         break
  111.        
  112.     else:
  113.         print("Opción incorrecta")
  114.        
  115.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement