Mochinov

Untitled

May 14th, 2021
506
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import json
  2. import redis
  3. from django.conf import settings
  4.  
  5.  
  6. class StateDataBase:
  7.  
  8.     def __init__(self, db_name):
  9.         LIST_BIO_PARAMETRS = (
  10.             'bloodoxygen',
  11.             'heartrate',
  12.             'thermometer',
  13.             'tonometer',
  14.             'distance',
  15.             'calories',
  16.         )
  17.         """Конструктор класса промежуточного состаяния"""
  18.         self.connection = redis.Redis(host=settings.REDIS_HOST, port=settings.REDIS_PORT,db=10)
  19.         self.db_name = db_name
  20.  
  21.         all_connection = self.connection.hgetall(self.db_name)
  22.         for val in LIST_BIO_PARAMETRS:
  23.             if not bytes(val,encoding='utf-8') in all_connection:
  24.                 objects = {
  25.                     f'{val}' : '',
  26.                 }
  27.                 print(objects)
  28.                 self.connection.hmset(self.db_name, objects)
  29.  
  30.  
  31.     def GetAllParams(self) -> json:
  32.         """Возвращает все данные из бд"""
  33.         return self.connection.hgetall(self.db_name)
  34.  
  35.     def ClearAllState(self):
  36.         """Очищает всю используемую бд"""
  37.         # self.connection.unlink(self.db_name)
  38.         self.connection.flushdb()
  39.  
  40.     def GetParametrs(self, parametr) -> json:
  41.         """Геттер класса StateDataBase (Возвращает по ключу значение из бд Redis)"""
  42.         try:
  43.             key = bytes(
  44.                 parametr,
  45.                 encoding='utf-8'
  46.             )
  47.  
  48.             compound = json.loads(
  49.                 self.connection.hgetall(self.db_name)[key].decode('utf-8')
  50.             )
  51.             return compound
  52.         except Exception as e:
  53.             print('==== get_user_parametrs ==== %s ' % (e))
  54.             return None
  55.  
  56.     def SetParametrs(self, key_parametr, value):
  57.         """Устанавливает по ключу значение переданных через параметры метада , бд Redis"""
  58.  
  59.         key = bytes(
  60.             key_parametr,
  61.             encoding='utf-8'
  62.         )
  63.         compound = {}
  64.         try:
  65.             compound = json.loads(
  66.                 self.connection.hgetall(self.db_name)[key].decode('utf-8')
  67.             )
  68.         except:
  69.             print("No date !")
  70.  
  71.         value = json.loads(value)
  72.         if compound:
  73.             mapp = compound
  74.             mapp.append(value)
  75.         else:
  76.             mapp = []
  77.             mapp.append(value)
  78.  
  79.         self.connection.hset(self.db_name, key, json.dumps(mapp))
RAW Paste Data