- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
def loadDevices(list_devices, db_name, db_user, db_host, db_password):
"""Загрузка устройств из базы данных"""
psql = ClassPSQL(db_name, db_user, db_host, db_password, db_port)
for group in psql.get("SELECT * FROM user_groups"):
group_id, _, _, available_devices = group
if (group_id != 0) and (available_devices != None):
for device in parceDeviceStr(available_devices):
if (findDevice(list_devices, int(device)) == None):
local_res= psql.get("SELECT * FROM device WHERE logic_id=" + str(device))
if len(local_res):
dev_id, _, port = local_res[0]
list_devices.append(ClassDevice(int(device), str(dev_id), int(port)))
findDevice(list_devices, int(device)).addGroupID(int(group_id))
else:
findDevice(list_devices, int(device)).addGroupID(int(group_id))
for device in psql.get("SELECT * FROM sm_devs"):
dev_id, logic_id, port = device
if (findDevice(list_devices, int(logic_id)) == None):
list_devices.append(ClassDevice(int(logic_id), str(dev_id), int(port)))
list_devices = sorted(list_devices, key=lambda device: device.getLogicID())
return list_devices
------------------------------------------
class ClassGroupDevices(object):
... много методов ...
def save(self):
"""Сохранение группы устройств в postgres"""
str_logic_ids = ""
for logic_id in self.getLogicIDs():
if (len(str_logic_ids) > 0):
str_logic_ids += "," + str(logic_id)
else:
str_logic_ids = str(logic_id)
if (self._psql.get("SELECT subgroup_id FROM us_dev_sgr WHERE (group_id='%s' and name='%s')" % (str(self.getGroupID()), self.getName()))):
self._psql.set("UPDATE us_dev_sgr SET logic_ids='%s' WHERE (group_id='%s' and name='%s')"\
% (str_logic_ids, str(self.getGroupID()), self.getName()))
else:
self._psql.set("INSERT INTO us_dev_sgr (group_id, name, logic_ids) VALUES ('%s', '%s', '%s')"\
% (str(self.getGroupID()), self.getName(), str_logic_ids))
------------------------------------------
class ClassSchedule(object):
... много методов ...
def save(self, psql, list_devices:list, conf, timezone:int, schedule_id:int = 0):
assert(isinstance(psql, ClassPSQL))
assert(isinstance(list_devices, list))
# assert(isinstance(conf, INIConfigLoader))
assert(isinstance(timezone, int))
assert(isinstance(schedule_id, int))
for date in self._list_date:
for logic_id in self._list_devices:
local_device = findDevice(list_devices, logic_id)
local_port, local_value = local_device.liquidity(self._action, conf, psql)
date_time = datetime.datetime.strptime(date + " " + self._time, "%d.%m.%Y %H:%M") - datetime.timedelta(hours = timezone)
psql.set("INSERT INTO device_exec_schedule (logicid, time, subgroup, port, value, group_id, answer) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')" %
(str(logic_id), date_time, schedule_id, str(local_port), str(local_value), str(self._groups_id), "0"))
Была дана задача сишнику не знавшему Python написать сайт на Django за 4 дня. Знаете что? Он написал. (Названия таблиц в коде изменены, но смысл сохранён). Поддерживать код дали мне. А этот код из недр