import dynaconf from influxdb import InfluxDBClient class InfluxDB(object): def __init__(self): self._influxdb = None self.config = dynaconf.settings.get('INFLUXDB') self.init_app() def init_app(self): config = { 'host': self.config.get('HOST', 'localhost'), 'port': self.config.get('PORT', 8086), 'username': self.config.get('USERNAME', 'guest'), 'password': self.config.get('PASSWORD', 'guest'), } self._influxdb = InfluxDBClient(**config) database = self.config.get('DATABASE', None) if database: self.switch_database(database) def reconnect(self): self.init_app() def query(self, query_string, *args, **kw): return self._influxdb.query(query_string, *args, **kw) def write_points(self, points, *args, **kw): if not points: return return self._influxdb.write_points( points, *args, **kw) def create_database(self, database=None): if not database: database = self.config.get('DATABASE') self._influxdb.create_database(database) self.switch_database(database) def switch_database(self, database): self._influxdb.switch_database(database) influxdb = InfluxDB()