У меня есть sqlite db, созданный как показано ниже:
class VPN_routers(Base):
__tablename__ = 'vpnrouters'
__table_args__ = TABLE_ARGS
sp_id = Column(String(), primary_key=True)
router_id = Column(String())
external_gw = Column(String())
subnet_attached = Column(String())
vpn_connectivity = Column(String()
, а содержимое таблицы выглядит следующим образом:
sp-10.1.10.148|66c49f9b-11c4-4|172.24.4.6|cb3a722e-2ec4-4caf-a34b-93004d885f28|NO
sp-10.1.10.147|282608ba-8870-l|172.24.4.7|Not Attached|NO
sp-10.1.10.149|44cc77fe-3b2e-4|172.24.4.7|50853e0b-918f-4c5f-8188-3acbb23a829a|NO
Я хотел обновить строку, где sp_id =«sp-10.1.10.147» (идентификация с использованием sp_id) и обновить subnet_id и vpn_connectivity до новых значений.после обновления таблица может выглядеть следующим образом.
sp-10.1.10.148|66c49f9b-11c4-4|172.24.4.6|cb3a722e-2ec4-4caf-a34b-93004d885f28|NO
sp-10.1.10.147|282608ba-8870-l|172.24.4.7|cbcbeiowj-d34f5tgygt-6g7ggrydwqrer3d|YES
sp-10.1.10.149|44cc77fe-3b2e-4|172.24.4.7|50853e0b-918f-4c5f-8188-3acbb23a829a|NO
Я пытаюсь написать это обновление как функцию, в которой я могу иметь возможность присвоить кому-либо значение в качестве идентификатора (не обязательно sp_id всегда) строкии соответствующие ему столбцы новые элементы в качестве входных данных для функции.
ex:
update_DB(VPN_routers, identifier={'sp_id':"sp-10.1.10.147"}, changes={'subnet_attached': "cbcbeiowj-d34f5tgygt-6g7ggrydwqrer3d", 'vpn_connectivity':"YES"})
* Примечание: идентификатор и изменения не всегда одинаковы, идентификатор будет иметь фиксированную длину 1, ноизменения могут иметь переменную длину.
Я перепробовал много методов, но я не мог сделать это, полностью полагаясь на этот пост для ответа.