Python синхронизировать с MySQL для локального приложения? - PullRequest
1 голос
/ 11 февраля 2012

Было много вопросов в этом направлении, но я изо всех сил пытаюсь применить их к моему сценарию. Любая помощь будет принята с благодарностью!

В настоящее время у нас есть работающая база данных mySQL, размещенная на веб-сайте, данные вводятся с веб-сайта и через PHP помещаются в базу данных.

В то же время мы хотим создать приложение на Python, работающее в автономном режиме. Он должен выполнять все те же функции, что и веб-версия, и работать полностью локально, это означает, что для локального запуска требуется копия всей базы данных, и при внесении изменений в такую ​​локальную базу данных они синхронизируются при следующем доступном подключении к Интернету. .

Во-первых, я понятия не имею, как лучше всего запустить такую ​​базу данных в автономном режиме. Я думал о настройке локального хоста, однако его нужно распространять на многие машины. Следовательно, установка localhost с помощью какого-либо установщика может быть непрактичной, нет?

Во вторых синхронизация? Не знаю, как это сделать!

Любая помощь была бы очень очень очень признательна.

Спасибо!

Ответы [ 3 ]

1 голос
/ 16 февраля 2012

Для привязки Python к MySql вы можете использовать HTSQL:

http://htsql.org

Затем вы также можете запросить базу данных MySQL через http-запросы, либо из вызовов AJAX, либо со стороны сервера, например cURL(и, конечно, все еще есть возможность писать стандартные запросы SQL).

Существует плагин JQuery под названием HTRAF, который обрабатывает вызовы AJAX на стороне клиента к серверу HTSQL на стороне клиента.

Сервер HTSQL также работает на локальном хосте.

Какую операционную систему вы бы использовали?

0 голосов
/ 11 февраля 2012

Насколько высокопроизводительным должно быть ваше локальное приложение? Кроме того, насколько надежно локально доступное интернет-соединение? Если вам не нужна исключительно высокая производительность, почему бы просто не оставить данные на удаленном сервере MySQL?

Если вы уверены, что вам нужен доступ к локальным данным, я бы посмотрел встроенную репликацию MySQL для синхронизации. Его очень просто настроить / использовать, и вы можете использовать его для поддержки локальной копии только для чтения удаленной базы данных для быстрого доступа к данным. Вы бы просто встроили в свое приложение возможность выполнять запросы записи на удаленном сервере и выполнять запросы чтения к локальной БД. Время задержки между двумя серверами, как правило, очень мало ... примерно порядка миллисекунд ... но вам все равно приходится сталкиваться с перегрузкой сети, которая не позволяет мгновенно синхронизировать локальную подчиненную базу данных с ведущим. 1003 *

Что касается Python, google mysql-python , потому что вам потребуется привязка Python MySQL для работы с базой данных MySQL. Наконец, я очень рекомендую SQLalchemy как ORM с python, потому что это сделает вашу жизнь намного проще.

Я бы сказал, что идеальным решением было бы установить удаленный веб-сервис REST API и использовать его вместо прямого доступа к базе данных. Конечно, у вас могут не быть внутренних возможностей, времени или желания делать это ... что тоже нормально:)

0 голосов
/ 11 февраля 2012

Планируете ли вы запускать mysql в локальных автономных приложениях на python? Я бы предложил что-то вроде sqlite. Что касается синхронизации данных, это также зависит от типа данных, которые должны быть синхронизированы. Один вопрос, на который нужно ответить:

Являются ли данные, генерируемые этими приложениями на Python, непрозрачными? Если да (то есть он не имеет никакого отношения к другим объектам), то вы можете поместить данные в очередь локально и отправить их на централизованный веб-сайт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...