mieweb / mieWeb /scripts /pruebas /interfaz_prueba.py
Sergio Salas
intento de adaptacion estructura
0c61413
import sqlite3
import panel as pn
# Inicializar Panel
pn.extension()
# Funci贸n para conectar a la base de datos y obtener los materiales
def obtener_materiales(busqueda=None):
conn = sqlite3.connect(r"C:\Users\sersa\Desktop\UC\tfg\tfg\mieWeb\pruebas\prueba.db") # Cambia esto a la ruta de tu base de datos
cursor = conn.cursor()
if busqueda:
# Consultar los materiales que coinciden exactamente con la b煤squeda (ignorando may煤sculas/min煤sculas)
cursor.execute("SELECT id, nombre FROM Material WHERE LOWER(nombre) = LOWER(?)", (busqueda,))
else:
# Consultar todos los materiales
cursor.execute("SELECT id, nombre FROM Material")
# Obtener todos los resultados
materiales = cursor.fetchall()
conn.close()
return materiales
# Obtener los materiales de la base de datos
materiales = obtener_materiales()
# Crear una lista con los nombres de los materiales para el multi-choice
material_names = [material[1] for material in materiales]
material_dict = {material[1]: material[0] for material in materiales} # Diccionario de {nombre: id}
# Crear un widget de multi-choice (selecci贸n m煤ltiple)
multi_choice = pn.widgets.MultiChoice(name="Seleccionar Materiales", options=material_names, width=400, placeholder="Seleccione los materiales que desee")
# Funci贸n que se ejecuta cuando el usuario selecciona materiales
def mostrar_seleccion(event):
# Obtener los materiales seleccionados
seleccionados = event.new
ids_seleccionados = [material_dict[nombre] for nombre in seleccionados] # Convertir nombres seleccionados a IDs
print(f"Materiales seleccionados: {seleccionados}, IDs: {ids_seleccionados}")
# Aqu铆 puedes hacer cualquier cosa con los materiales seleccionados (e.g., c谩lculos)
# Conectar la funci贸n de selecci贸n a los multi-choice
multi_choice.param.watch(mostrar_seleccion, 'value')
# Mostrar los widgets
pn.Column(multi_choice).show()