Team Ai
Apppublic

SpacesExamples/fastapi-react-app

sourceHugging Faceupdated 3y agoView on Hugging Face
9likes
app.py57 linesDownload Raw Back to root
1from fastapi import FastAPI2from fastapi.middleware.cors import CORSMiddleware3from fastapi.responses import JSONResponse4from fastapi.staticfiles import StaticFiles5import numpy as np6import argparse7import os8 9HOST = os.environ.get("API_URL", "0.0.0.0")10PORT = os.environ.get("PORT", 7860)11parser = argparse.ArgumentParser()12parser.add_argument("--host", default=HOST)13parser.add_argument("--port", type=int, default=PORT)14parser.add_argument("--reload", action="store_true", default=True)15parser.add_argument("--ssl_certfile")16parser.add_argument("--ssl_keyfile")17args = parser.parse_args()18 19app = FastAPI()20app.add_middleware(21    CORSMiddleware,22    allow_origins=["*"],23    allow_credentials=True,24    allow_methods=["*"],25    allow_headers=["*"],26)27 28 29@app.get("/invert")30async def invert(text: str):31    return {32        "original": text,33        "inverted": text[::-1],34    }35 36 37@app.get("/data")38async def get_data():39    data = {"data": np.random.rand(100).tolist()}40    return JSONResponse(data)41 42 43app.mount("/", StaticFiles(directory="static", html=True), name="static")44 45if __name__ == "__main__":46    import uvicorn47 48    print(args)49    uvicorn.run(50        "app:app",51        host=args.host,52        port=args.port,53        reload=args.reload,54        ssl_certfile=args.ssl_certfile,55        ssl_keyfile=args.ssl_keyfile,56    )57