import gradio as gr from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware class Data(): __init__(self, data): self.data = [[data]] update(self): self.data.append([new_data]) get_data(): return self.data app = FastAPI() data_for_app = new Data("initial data") # Add CORS middleware app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Create a simple Gradio interface def greet(name): return f"Hello, {name}!" gr.Blocks() as blocks: gr.Dataframe(value=get_data, label="My Data") # Mount Gradio app to root app = gr.mount_gradio_app(app, interface, path="/") # Custom POST endpoint i = 0 @app.post("/endpoint") async def custom_endpoint(data: dict): i = i + 1 data_for_app.update(f"New data - item: {i}"); return {"message": "Received data", "data": data} if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=7860)