Numinfo / app.py
warmifans's picture
Update app.py
c16774a verified
Raw
History Blame Contribute Delete
1.02 kB
from fastapi import FastAPI
import duckdb
import traceback
app = FastAPI()
DB_FILE = "hf://datasets/warmifans/Userdata@main/users_data.db"
con = duckdb.connect()
try:
con.execute("INSTALL sqlite;")
con.execute("LOAD sqlite;")
con.execute(f"ATTACH '{DB_FILE}' AS db (TYPE sqlite)")
print("Database attached successfully.")
except Exception as e:
print(e)
@app.get("/")
def home():
return {
"status": "API running"
}
@app.get("/id")
def search(id: str):
try:
df = con.execute(
"""
SELECT *
FROM db.users
WHERE id = ?
LIMIT 10
""",
[id]
).fetchdf()
if df.empty:
return {
"found": 0,
"data": []
}
return {
"found": len(df),
"data": df.to_dict(orient="records")
}
except Exception as e:
traceback.print_exc()
return {
"error": str(e)
}