EthanChenTan/SQLite
0
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)