| import sqlite3 |
| import gradio as gr |
|
|
| |
| conn = sqlite3.connect("users.db", check_same_thread=False) |
| cursor = conn.cursor() |
|
|
| |
| cursor.execute(''' |
| CREATE TABLE IF NOT EXISTS users ( |
| id INTEGER PRIMARY KEY AUTOINCREMENT, |
| name TEXT NOT NULL, |
| email TEXT NOT NULL UNIQUE |
| ) |
| ''') |
| conn.commit() |
|
|
| |
|
|
| def create_user(name, email): |
| try: |
| cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", (name, email)) |
| conn.commit() |
| return "User created successfully!" |
| except sqlite3.IntegrityError: |
| return "Email already exists." |
|
|
| def read_users(): |
| cursor.execute("SELECT * FROM users") |
| rows = cursor.fetchall() |
| if not rows: |
| return "No users found." |
| result = "" |
| for row in rows: |
| result += f"ID: {row[0]}, Name: {row[1]}, Email: {row[2]}\n" |
| return result |
|
|
| def update_user(user_id, name, email): |
| cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,)) |
| if cursor.fetchone() is None: |
| return "User ID not found." |
| try: |
| cursor.execute("UPDATE users SET name = ?, email = ? WHERE id = ?", (name, email, user_id)) |
| conn.commit() |
| return "User updated successfully!" |
| except sqlite3.IntegrityError: |
| return "Email already exists." |
|
|
| def delete_user(user_id): |
| cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,)) |
| if cursor.fetchone() is None: |
| return "User ID not found." |
| cursor.execute("DELETE FROM users WHERE id = ?", (user_id,)) |
| conn.commit() |
| return "User deleted successfully!" |
|
|
| |
|
|
| with gr.Blocks() as demo: |
| gr.Markdown("# Simple SQLite3 CRUD with Gradio") |
|
|
| with gr.Tab("Create User"): |
| name_in = gr.Textbox(label="Name") |
| email_in = gr.Textbox(label="Email") |
| create_btn = gr.Button("Create User") |
| create_out = gr.Textbox(label="Output") |
| create_btn.click(create_user, inputs=[name_in, email_in], outputs=create_out) |
|
|
| with gr.Tab("Read Users"): |
| read_btn = gr.Button("Show All Users") |
| read_out = gr.Textbox(label="Users", lines=10) |
| read_btn.click(read_users, outputs=read_out) |
|
|
| with gr.Tab("Update User"): |
| update_id = gr.Number(label="User ID") |
| update_name = gr.Textbox(label="New Name") |
| update_email = gr.Textbox(label="New Email") |
| update_btn = gr.Button("Update User") |
| update_out = gr.Textbox(label="Output") |
| update_btn.click(update_user, inputs=[update_id, update_name, update_email], outputs=update_out) |
|
|
| with gr.Tab("Delete User"): |
| delete_id = gr.Number(label="User ID") |
| delete_btn = gr.Button("Delete User") |
| delete_out = gr.Textbox(label="Output") |
| delete_btn.click(delete_user, inputs=delete_id, outputs=delete_out) |
|
|
| demo.launch(debug=True) |