Python, реализующий простое хранилище веб-данных

Я пытаюсь разработать питона PyQt программа, которая позволяет пользователю вводить данные о личных данных и просматривать их позже для целей обработки.

Программу будут использовать менее 5 человек одновременно. Итак, я думаю использовать Sqlite3 База данных, как я считаю, должна быть в состоянии справиться с таким количеством трафика.

Фреймворк, который я имею в виду, состоит в том, что клиенты будут иметь собственную копию моей программы python pyqt на каждой машине. Всякий раз, когда они выполняют какие-либо операции, требующие чтения / записи данных, он подключается к серверу через Интернет и читает / пишет из sqlite.db на сервере.

По сути, сервер будет ничем иным, как удаленным хранилищем данных.

В настоящее время я могу создать необходимый GUI для ввода данных с использованием различных виджетов, таких как QlineEdit, QCombobox, QTextEdit и так далее.

Но я никогда раньше не занимался сетевым программированием, поэтому не знаю, как реализовать сервер, на котором хранится файл данных sqlite для моего программного обеспечения. Так что мои вопросы

(1) если у меня есть компьютер с круглосуточным подключением к Интернету, как мне настроить его так, чтобы он мог действовать как сервер, на котором хранится файл данных для моего программного обеспечения?

(2) Каким образом моя программа может / должна общаться с этим сервером через Интернет.

Даже если вы не можете дать мне точный ответ, я был бы признателен, если бы вы могли предоставить мне некоторую информацию, чтобы я посмотрел и изучил ее.

Любые конструктивные советы будут оценены.

К вашему сведению: все ПК будут работать под управлением Windows XP SP3 32 бит.

1 ответ

Решение

У клиента есть разные способы взаимодействия с сервером.

Ты можешь использовать

  1. XMLRPC для создания объекта с методами, которые вызываются на стороне сервера

  2. Вы можете использовать HTTP и REST для сервера с запросами библиотеки или urllib для клиента

  3. Для последнего вы можете использовать флягу, бутылку, django или другие фреймворки для создания веб-сайта, который обслуживает контент (учебные пособия)

  4. Вы можете использовать Pyro для удаленного доступа к объектам на сервере. Полезно, если клиенты также должны общаться друг с другом.

  5. Вы можете создать свой собственный протокол. Вы многому научитесь и оцените другие варианты.

  6. Список не полный

Я предлагаю вам взглянуть на XMLRPC, если это подходит. Для номера 2 могу сказать, что многие API используют такой HTTP-интерфейс (twitter, github, facebok, google). Это легко использовать и для других людей.

Безопасность важна. Я не эксперт. Если вы отправляете имя пользователя и пароль в виде простого текста, используйте SSL для шифрования соединения. Если вы не можете заставить ssl работать с python, вы можете использовать stunnel.

Другие вопросы по тегам