master
gtitov 5 years ago
parent aedbe3bbfb
commit 605431c15d

@ -1,6 +1,7 @@
from fastapi import FastAPI from fastapi import FastAPI
from fastapi.responses import JSONResponse from fastapi.responses import JSONResponse
from fastapi.middleware.cors import CORSMiddleware # CORS from fastapi.middleware.cors import CORSMiddleware # CORS
from fastapi.middleware.gzip import GZipMiddleware # gZip
from enum import Enum from enum import Enum
@ -16,6 +17,8 @@ class ParameterName(str, Enum):
app = FastAPI() app = FastAPI()
app.add_middleware(GZipMiddleware, minimum_size=1000) # gZip
origins = [ # CORS origins = [ # CORS
"*", "*",
] ]
@ -100,15 +103,20 @@ async def get_stations_parameter_values(parameter: ParameterName, start_datetime
""" """
cur.execute( cur.execute(
f"""SELECT """SELECT
station_id, station_id,
datetime, datetime,
value, value,
forecast forecast
FROM stations_all_params FROM stations_all_params
JOIN parameters ON stations_all_params.parameter = parameters.parameter_id JOIN parameters ON stations_all_params.parameter = parameters.parameter_id
WHERE parameter_name = '{parameter}' AND datetime >= strftime('%s', '{start_datetime}') AND datetime < strftime('%s', '{end_datetime}') WHERE parameter_name = :parameter AND datetime >= strftime('%s', :start_datetime) AND datetime < strftime('%s', :end_datetime)
""" """,
{
"parameter": parameter,
"start_datetime": start_datetime,
"end_datetime": end_datetime
}
) )
stations_values = cur.fetchall() stations_values = cur.fetchall()
@ -141,13 +149,18 @@ async def get_one_station_values(station_id: int, start_datetime: datetime, end_
""" """
cur.execute( cur.execute(
f"""SELECT """SELECT
datetime, datetime,
parameter, parameter,
value value
FROM stations_all_params FROM stations_all_params
WHERE station_id = {station_id} AND datetime >= strftime('%s', '{start_datetime}') AND datetime < strftime('%s', '{end_datetime}') WHERE station_id = :station_id AND datetime >= strftime('%s', :start_datetime) AND datetime < strftime('%s', :end_datetime)
""" """,
{
"station_id": station_id,
"start_datetime": start_datetime,
"end_datetime": end_datetime
}
) )
one_station_values = cur.fetchall() one_station_values = cur.fetchall()
@ -215,15 +228,20 @@ async def get_net_parameter_values(parameter: ParameterName, start_datetime: dat
""" """
cur.execute( cur.execute(
f"""SELECT """SELECT
grid_id, grid_id,
datetime, datetime,
param_value, param_value,
forecast forecast
FROM net_all_params FROM net_all_params
JOIN parameters ON net_all_params.parameter = parameters.parameter_id JOIN parameters ON net_all_params.parameter = parameters.parameter_id
WHERE parameter_name = '{parameter}' AND datetime >= strftime('%s', '{start_datetime}') AND datetime < strftime('%s', '{end_datetime}') WHERE parameter_name = :parameter AND datetime >= strftime('%s', :start_datetime) AND datetime < strftime('%s', :end_datetime)
""" """,
{
"parameter": parameter,
"start_datetime": start_datetime,
"end_datetime": end_datetime
}
) )
net_values = cur.fetchall() net_values = cur.fetchall()

Loading…
Cancel
Save