import sqlite3 import gradio as gr # Crear la base de datos si no existe def crear_base_de_datos(): conexion = sqlite3.connect("usuarios.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS usuarios ( usuario TEXT PRIMARY KEY, contraseña TEXT NOT NULL ) """) conexion.commit() conexion.close() # Función para insertar un nuevo usuario def insertar_usuario(usuario, contraseña): try: conexion = sqlite3.connect("usuarios.db") cursor = conexion.cursor() cursor.execute("INSERT INTO usuarios (usuario, contraseña) VALUES (?, ?)", (usuario, contraseña)) conexion.commit() conexion.close() return f"Usuario '{usuario}' agregado correctamente." except sqlite3.IntegrityError: return f"El usuario '{usuario}' ya existe." # Función para mostrar todos los usuarios y contraseñas def mostrar_usuarios(): conexion = sqlite3.connect("usuarios.db") cursor = conexion.cursor() cursor.execute("SELECT * FROM usuarios") usuarios = cursor.fetchall() conexion.close() if usuarios: resultado = "Usuarios y contraseñas guardados:\n\n" resultado += "Usuario\t\tContraseña\n" resultado += "-" * 30 + "\n" for usuario, contraseña in usuarios: resultado += f"{usuario}\t\t{contraseña}\n" return resultado else: return "No hay usuarios registrados." # Interfaz de Gradio with gr.Blocks() as interfaz: gr.Markdown("# Sistema de Usuarios") # Sección para insertar usuarios gr.Markdown("### Agregar un nuevo usuario") usuario_input = gr.Textbox(label="Usuario") contraseña_input = gr.Textbox(label="Contraseña", type="password") insertar_btn = gr.Button("Agregar Usuario") insertar_output = gr.Textbox(label="Resultado de Inserción", lines=2) insertar_btn.click(insertar_usuario, inputs=[usuario_input, contraseña_input], outputs=insertar_output) # Sección para mostrar usuarios gr.Markdown("### Mostrar todos los usuarios") mostrar_btn = gr.Button("Mostrar Usuarios") mostrar_output = gr.Textbox(label="Usuarios Registrados", lines=10) mostrar_btn.click(mostrar_usuarios, inputs=[], outputs=mostrar_output) # Ejecutar la interfaz if __name__ == "__main__": crear_base_de_datos() # Crear la base de datos y la tabla si no existen interfaz.launch()