mlAPI / main.py
kandi1clickkits
chart code with DB
035d91e
raw
history blame
1.38 kB
from fastapi import FastAPI, HTTPException, Body
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from fastapi.responses import HTMLResponse
import gradio as gr
app = FastAPI()
SQLALCHEMY_DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()
def create_gr_chart(data):
chart = gr.LineChart(data=data)
return chart.launch()
class Item(Base):
__tablename__ = "items"
id = Column(Integer, primary_key=True, index=True)
category = Column(String, index=True)
value = Column(Integer)
Base.metadata.create_all(bind=engine)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.post("/form/")
async def store_data(item: Item, db: Session = Depends(get_db)):
db.add(item)
db.commit()
db.refresh(item)
return item
@app.get("/visualization/", response_class=HTMLResponse)
async def show_visualization():
# Fetch data from the database and create a Gradio chart
data = get_data_from_db() # Define this function to fetch data from the database
chart = create_gr_chart(data) # Define this function to create a Gradio chart
return chart