Python, реализующий простое хранилище веб-данных
Я пытаюсь разработать питона PyQt
программа, которая позволяет пользователю вводить данные о личных данных и просматривать их позже для целей обработки.
Программу будут использовать менее 5 человек одновременно. Итак, я думаю использовать Sqlite3
База данных, как я считаю, должна быть в состоянии справиться с таким количеством трафика.
Фреймворк, который я имею в виду, состоит в том, что клиенты будут иметь собственную копию моей программы python pyqt на каждой машине. Всякий раз, когда они выполняют какие-либо операции, требующие чтения / записи данных, он подключается к серверу через Интернет и читает / пишет из sqlite.db
на сервере.
По сути, сервер будет ничем иным, как удаленным хранилищем данных.
В настоящее время я могу создать необходимый GUI
для ввода данных с использованием различных виджетов, таких как QlineEdit
, QCombobox
, QTextEdit
и так далее.
Но я никогда раньше не занимался сетевым программированием, поэтому не знаю, как реализовать сервер, на котором хранится файл данных sqlite для моего программного обеспечения. Так что мои вопросы
(1) если у меня есть компьютер с круглосуточным подключением к Интернету, как мне настроить его так, чтобы он мог действовать как сервер, на котором хранится файл данных для моего программного обеспечения?
(2) Каким образом моя программа может / должна общаться с этим сервером через Интернет.
Даже если вы не можете дать мне точный ответ, я был бы признателен, если бы вы могли предоставить мне некоторую информацию, чтобы я посмотрел и изучил ее.
Любые конструктивные советы будут оценены.
К вашему сведению: все ПК будут работать под управлением Windows XP SP3 32 бит.
1 ответ
У клиента есть разные способы взаимодействия с сервером.
Ты можешь использовать
XMLRPC для создания объекта с методами, которые вызываются на стороне сервера
Вы можете использовать HTTP и REST для сервера с запросами библиотеки или urllib для клиента
Для последнего вы можете использовать флягу, бутылку, django или другие фреймворки для создания веб-сайта, который обслуживает контент (учебные пособия)
Вы можете использовать Pyro для удаленного доступа к объектам на сервере. Полезно, если клиенты также должны общаться друг с другом.
Вы можете создать свой собственный протокол. Вы многому научитесь и оцените другие варианты.
Список не полный
Я предлагаю вам взглянуть на XMLRPC, если это подходит. Для номера 2 могу сказать, что многие API используют такой HTTP-интерфейс (twitter, github, facebok, google). Это легко использовать и для других людей.
Безопасность важна. Я не эксперт. Если вы отправляете имя пользователя и пароль в виде простого текста, используйте SSL для шифрования соединения. Если вы не можете заставить ssl работать с python, вы можете использовать stunnel.