-def open_engine(config):
- user = config.get('database', 'user')
- pwd = config.get('database', 'password')
- host = config.get('database', 'hostname')
- db = config.get('database', 'database')
- engine = create_engine('mysql+mysqldb://{}:{}@{}/{}'.format(user, pwd, host, db), echo=False)
- return engine
-
-
-def select_sensordata(initial_where, initial_sql_args):
- engine = open_engine(config)
- with engine.connect() as conn:
- where = [initial_where]
- sql_args = [initial_sql_args]
- begin = None
- end = None
- if 'begin' in request.args:
- where.append('timestamp>=%s')
- begin = request.args.get('begin', None, parse_datetime)
- sql_args.append(begin)
- if 'end' in request.args:
- where.append('timestamp<=%s')
- end = request.args.get('end', None, parse_datetime)
- sql_args.append(end)
- sql = 'select * from sensors where {} order by id'.format(' and '.join(where))
- cursor = conn.execute(sql, *sql_args)
- result = [dict(row) for row in cursor]
+
+class Sensors(db.Model):
+ __tablename__ = 'sensors'
+
+
+def select_sensordata(initial_where):
+ query = Sensors.query.filter(initial_where)
+ begin = request.args.get('begin', None, parse_datetime)
+ end = request.args.get('end', None, parse_datetime)
+ if begin is not None:
+ query = query.filter(Sensors.timestamp >= begin)
+ if end is not None:
+ query = query.filter(Sensors.timestamp <= end)
+ result = query.all()