42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
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) |