后台使用Python web框架tornado开发,主要提供两个接口。
1.GET方法的/api/stations
加载点位信息xlsx文件,使用pandas加载为DataFrame后转换为JSON。
2.POST方法的/api/stations?date=20210501&hour=15&type=PM2.5
根据日期找到已经下载到本地的对应日期的csv文件,使用pandas加载为DataFrame,然后根据小时和监测因子,过滤DataFrame,转换为JSON。
代码如下:
代码语言:python代码运行次数:0复制class krigingMapHandler(tornado.web.RequestHandler):
def get(self):
self.render('krigingMap.html')
csvDir=pathlib.Path('E:/BaiduNetdiskDownload/station_2021')
class stationsHandler(tornado.web.RequestHandler):
def get(self):
df_station=pd.read_excel('static/stations.xlsx')
data=df_station.to_json(orient='records')
self.write({'result':data})
def post(self):
date=self.get_argument('date')
hour=self.get_argument('hour')
factor=self.get_argument('type')
hour=int(hour)
df_data=pd.read_csv(str(csvDir/f'china_sites_{date}.csv'))
df_data=df_data[(df_data.hour==hour) & (df_data.type==factor)]
data=df_data.to_json(orient='records')
self.write({'result':data})