File size: 2,527 Bytes
36102b6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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()