from datetime import datetime, timedelta import uvicorn from fastapi import FastAPI, Query from pydantic import BaseModel from irrgiation.irrigateDecisionDemo import cal_irrigationByDay # 创建 FastAPI 应用 app = FastAPI() # 定义请求模型 class IrrigationRequest(BaseModel): zwlx_name:str dkbm: str monitor_date: str soil_key: str weather_key: str irrigation:float @app.post("/calculate_irrigation/") async def create_item(data: IrrigationRequest): # 调用气象数据接口--获取具体日期的气象数据(气象) try: start_date = datetime.strptime(data.monitor_date, '%Y-%m-%d') end_date =start_date+timedelta(days=1) result = cal_irrigationByDay( data.zwlx_name, data.dkbm, start_date, end_date, data.soil_key, data.weather_key, data.irrigation ) return {"status": "success", "data": result.to_dict(orient="records")} except Exception as e: return {"status": "error", "message": str(e)} @app.get("/items/lib") async def get_lib(): return {"message": "Library data"} return result if __name__ == "__main__": uvicorn.run(app, host="127.0.0.1", port=8001)