Jayabalambika's picture
Create app.py
327ffd1 verified
import gradio as gr
import sqlite3
import pandas as pd
# Database file
db_file = "attendance_records.db"
# Helper Functions
def get_table_names():
"""Retrieve the names of all tables in the database."""
conn = sqlite3.connect(db_file)
cursor = conn.cursor()
cursor.execute("""
SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%';
""")
tables = [row[0] for row in cursor.fetchall()]
conn.close()
return tables
def query_table(table_name):
"""Query the selected table and return its content as a DataFrame."""
conn = sqlite3.connect(db_file)
try:
df = pd.read_sql_query(f"SELECT * FROM {table_name}", conn)
except Exception as e:
conn.close()
return str(e)
conn.close()
return df
def display_table(table_name):
"""Fetch and display the contents of the selected table."""
df = query_table(table_name)
if isinstance(df, pd.DataFrame):
return df
else:
return f"Error fetching data: {df}"
# Gradio App
def create_gradio_app():
with gr.Blocks() as app:
gr.Markdown("# Database Query Interface")
gr.Markdown("### Select a table to view its contents")
table_selector = gr.Dropdown(choices=get_table_names(), label="Select Table")
output = gr.Dataframe(label="Table Data", interactive=False)
table_selector.change(
fn=display_table,
inputs=table_selector,
outputs=output,
)
return app
app = create_gradio_app()
app.launch()