cotizador / database.py
forviaapps's picture
Rename app.py to database.py
34f8986 verified
Raw
History Blame Contribute Delete
2.53 kB
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()