#python #mysql #wxpython
Вопрос:
У меня есть графический интерфейс рабочего стола, построенный с помощью wxPython, который извлекается из базы данных MySQL. Это позволяет нескольким пользователям одновременно редактировать таблицы базы данных. Проблема в том, что клиент, для которого он создается, в конечном итоге изменит базу данных. Информация о базе данных в настоящее время жестко закодирована в программе. Есть ли способ обновить параметры базы данных для всех пользователей, если администратор изменит учетные данные для входа?
то есть
Оригинал
сервер = server123.com
база данных = база данных1
пароль = пароль1
Новая Информация
сервер = server456.com
база данных = база данных 2
пароль = пароль2
Как я могу гарантировать, что эта информация обновляется в копии приложения каждого пользователя?
Комментарии:
1. Поместите данные для входа на сервер в файл конфигурации. Есть сотни способов сделать это. Вам следует посмотреть на configparser
2. Но как файл конфигурации может быть передан другим экземплярам приложения? Нужно ли будет его повторно загружать?
3. Очевидно, что для файла должно быть единое центральное расположение
config
, как и для базы данных. Они загружаются при запуске программы. Если они смогут измениться в середине сессии, начнется настоящий ад. В этом случае вам нужно будет вызватьcentral
процесс, который выполняет все запросы и обновления базы данных, т. е. удалить фактическую обработку базы данных из кода и заменить ее вызовами модуля глобальной обработки базы данных.4. На самом деле вам, вероятно, понадобятся 2 файла конфигурации, локальный и центральный, для хранения различных типов информации о конфигурации.
5. Каждый раз, когда приложение загружается, оно считывает файл конфигурации — если приложение всегда запущено, вам нужно будет разработать триггер для повторного чтения файла конфигурации