Vamos a conectar Python con una base de datos SQLite y mostrar los productos en pantalla al presionar un botón.
Dar tus primeros pasos conectando Python con SQLite. Vas a crear una base de datos con DB Browser, cargar 5 productos a mano y luego programar una pequeña aplicación con ventana (tkinter) que lea esos datos y los muestre.
Abrí DB Browser for SQLite en tu computadora.
Hacé clic en "Nueva base de datos" y guardala con el nombre kiosco.db. Anotá bien la carpeta donde la guardás, la vas a necesitar después.
Se abre la ventana "Editar definición de tabla". Si no aparece, hacé clic en "Crear tabla".
productos| Campo | Tipo | Notas |
|---|---|---|
id | INTEGER | Marcá PK clave primaria y AI autoincremento |
producto | TEXT | El nombre del producto |
precio | REAL | Sirve para números con decimales |
Hacé clic en Aceptar.
Andá a la pestaña "Examinar datos" y con "Nuevo registro" cargá 5 productos. No escribas nada en id: se completa solo.
| id | producto | precio |
|---|---|---|
| 1 | Caramelos | 150 |
| 2 | Galletitas | 320.5 |
| 3 | Gaseosa | 800 |
| 4 | Alfajor | 450 |
| 5 | Chicles | 200 |
Hacé clic en "Escribir cambios" (arriba a la izquierda).
Creá tu archivo kiosco.py en la misma carpeta donde guardaste kiosco.db. Así Python la encuentra sin problemas.
Copiá el siguiente código leyendo los comentarios para entender cada línea:
# ========================================================== # APLICACIÓN: Mostrar los productos del kiosco # La base de datos "kiosco.db" ya fue creada con DB Browser # ========================================================== # Importamos las librerías necesarias import tkinter as tk # Para la ventana y el botón import sqlite3 # Para leer la base de datos # ---------------------------------------------------------- # Función que lee los productos y los muestra en pantalla # ---------------------------------------------------------- def mostrar_productos(): # Nos conectamos a la base de datos que ya existe conexion = sqlite3.connect("kiosco.db") cursor = conexion.cursor() # Le pedimos a la base TODOS los productos con un SELECT cursor.execute("SELECT producto, precio FROM productos") # Guardamos todas las filas que devuelve la consulta filas = cursor.fetchall() # Cerramos la conexión con la base conexion.close() # Vaciamos el cuadro de texto por si había algo escrito cuadro_texto.delete("1.0", tk.END) # Recorremos fila por fila y la mostramos en el cuadro for fila in filas: producto = fila[0] # El primer dato es el nombre precio = fila[1] # El segundo dato es el precio cuadro_texto.insert(tk.END, f"{producto} - ${precio}\n") # ---------------------------------------------------------- # Creación de la ventana con tkinter # ---------------------------------------------------------- # Creamos la ventana principal ventana = tk.Tk() ventana.title("Kiosco") ventana.geometry("300x250") # Ancho x Alto de la ventana # Etiqueta con un título arriba titulo = tk.Label(ventana, text="Lista de productos") titulo.pack(pady=10) # Cuadro de texto donde aparecerán los productos cuadro_texto = tk.Text(ventana, width=30, height=8) cuadro_texto.pack() # Botón que, al presionarlo, ejecuta la función mostrar_productos boton = tk.Button(ventana, text="Mostrar productos", command=mostrar_productos) boton.pack(pady=10) # Dejamos la ventana abierta esperando que el usuario haga clic ventana.mainloop()
Guardá el archivo y ejecutalo. Cuando se abra la ventana, presioná el botón "Mostrar productos". Deberían aparecer los 5 productos que cargaste con DB Browser. 🎉
cursor.execute("SELECT producto, precio FROM productos")?Modificá la consulta SELECT para que los productos aparezcan ordenados por precio.
💡 Pista: al final del SELECT se puede agregar ORDER BY precio