CoolFace
Apppublic

EthanChenTan/SQLite

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app.py88 linesDownload Raw Back to root
1import sqlite32import gradio as gr3 4# Connect to SQLite database (or create it)5conn = sqlite3.connect("users.db", check_same_thread=False)6cursor = conn.cursor()7 8# Create table if not exists9cursor.execute('''10CREATE TABLE IF NOT EXISTS users (11    id INTEGER PRIMARY KEY AUTOINCREMENT,12    name TEXT NOT NULL,13    email TEXT NOT NULL UNIQUE14)15''')16conn.commit()17 18# CRUD functions19 20def create_user(name, email):21    try:22        cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", (name, email))23        conn.commit()24        return "User created successfully!"25    except sqlite3.IntegrityError:26        return "Email already exists."27 28def read_users():29    cursor.execute("SELECT * FROM users")30    rows = cursor.fetchall()31    if not rows:32        return "No users found."33    result = ""34    for row in rows:35        result += f"ID: {row[0]}, Name: {row[1]}, Email: {row[2]}\n"36    return result37 38def update_user(user_id, name, email):39    cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))40    if cursor.fetchone() is None:41        return "User ID not found."42    try:43        cursor.execute("UPDATE users SET name = ?, email = ? WHERE id = ?", (name, email, user_id))44        conn.commit()45        return "User updated successfully!"46    except sqlite3.IntegrityError:47        return "Email already exists."48 49def delete_user(user_id):50    cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))51    if cursor.fetchone() is None:52        return "User ID not found."53    cursor.execute("DELETE FROM users WHERE id = ?", (user_id,))54    conn.commit()55    return "User deleted successfully!"56 57# Gradio interface58 59with gr.Blocks() as demo:60    gr.Markdown("# Simple SQLite3 CRUD with Gradio")61 62    with gr.Tab("Create User"):63        name_in = gr.Textbox(label="Name")64        email_in = gr.Textbox(label="Email")65        create_btn = gr.Button("Create User")66        create_out = gr.Textbox(label="Output")67        create_btn.click(create_user, inputs=[name_in, email_in], outputs=create_out)68 69    with gr.Tab("Read Users"):70        read_btn = gr.Button("Show All Users")71        read_out = gr.Textbox(label="Users", lines=10)72        read_btn.click(read_users, outputs=read_out)73 74    with gr.Tab("Update User"):75        update_id = gr.Number(label="User ID")76        update_name = gr.Textbox(label="New Name")77        update_email = gr.Textbox(label="New Email")78        update_btn = gr.Button("Update User")79        update_out = gr.Textbox(label="Output")80        update_btn.click(update_user, inputs=[update_id, update_name, update_email], outputs=update_out)81 82    with gr.Tab("Delete User"):83        delete_id = gr.Number(label="User ID")84        delete_btn = gr.Button("Delete User")85        delete_out = gr.Textbox(label="Output")86        delete_btn.click(delete_user, inputs=delete_id, outputs=delete_out)87 88demo.launch(debug=True)