def on_get(self, req, resp, name=None): try: if name: result = list( Measurement.select( Measurement.timestamp, Measurement.temperature, Measurement.pressure, Measurement.humidity, Measurement.light, Measurement.CO2, Measurement.rain, Measurement.snow, Measurement.battery, Station.name, Station.id, ).join(Station).where(Station.name == name).order_by( Measurement.timestamp.desc()).limit(100).dicts())[::-1] else: result = list( Measurement.select( Measurement.timestamp, Measurement.temperature, Measurement.pressure, Measurement.humidity, Measurement.light, Measurement.CO2, Measurement.rain, Measurement.snow, Measurement.battery, Station.name, Station.id, ).join(Station).order_by( Measurement.timestamp.desc()).limit(200).dicts())[::-1] except Exception as ex: self.logger.error(ex) print ex description = ('Aliens have attacked our base! We will ' 'be back as soon as we fight them off. ' 'We appreciate your patience.') raise falcon.HTTPServiceUnavailable('Service Outage', description, 30) resp.context['result'] = result resp.status = falcon.HTTP_200
def get_reply(measured): # get last ts from DB last = Measurement.select().where( Measurement.station == measured.station, Measurement.timestamp < measured.timestamp).order_by( Measurement.timestamp.desc()).first() ts = int(time.time()) if last: ts = last.timestamp return ctypes.c_ulong(ts)
def json( ): from_date = request.args.get('from') to_date = request.args.get('to') q = Measurement.select() if from_date: from_date = datetime.strptime( request.args.get('from'), DATE_FORMAT_PY ) q = q.where( Measurement.created_at > from_date ) if to_date: to_date = datetime.strptime( request.args.get('to'), DATE_FORMAT_PY ) q = q.where( Measurement.created_at < to_date ) raw_data = format_query( q ) return jsonify( raw_data )
def index(): q = Measurement.select() raw_data = format_query( q ) return render_template('index.html', raw_data = raw_data, DATE_FORMAT = DATE_FORMAT_JS )