Настольная программа Python с использованием веб-API

2

У меня есть очень случайный запрос от клиента, который хочет использовать программу на базе рабочего стола, которая может извлекать информацию из веб-интерфейсов, таких как Google Analytics, SEOMoz и другие подобные службы. Затем они хотят, чтобы части или все эти результаты хранились в центральном месте. Они заявили, что НЕ хотят веб-приложения вообще, но они хотят иметь возможность хранить данные на "сервере" (чтение, серверная версия настольного клиента) в своей локальной сети. Программа должна работать в Windows. Поддержка Linux и OS X будет приятной.

У меня есть некоторый опыт программирования и я не знаком с Python, поэтому я думал об использовании этого. Моя проблема в том, что я не уверен в связи между клиентами/серверами в локальной сети и взаимодействием между клиентом и веб-интерфейсами API.

1) Возможно ли это? Если да, то какие хорошие места для поиска ресурсов для интеграции API и сетевой коммуникации/любых хороших примеров?

2) Любые предложения/советы о том, что следует искать (например, распространенные ошибки, основные проблемы безопасности)?

3) Любые способы, которые были бы лучше, чем то, что я изложил выше?

4) База данных, какие бы хорошие варианты? Я хотел бы сделать это как можно более независимым и более или менее автономным (опираясь на минимальное количество установленного программного обеспечения).

Спасибо за любой вход!

Теги:
desktop-application

1 ответ

1
Лучший ответ
  • да, urllib, urllib2 и urlparse - это базовые библиотеки python для чтения в/из URL-адресов. Я бы предложил PyQt для фреймворка gui (pyGTK, wxWidgets и tkinter тоже было бы неплохо, все они отлично справляются с тремя описанными вами os). PyQt включает в себя все, что вам нужно, без каких-либо других библиотек. Он включает в себя средства управления доступом к сети, QUrl для разбора и построения URL и множество инструментов GUI для отображения данных.

  • ничего из нормы, кроме как видеть [1] в 4

  • см. 1 о PyQt. Но то, что вы собираетесь делать, - это создание URL-адресов, к которым вы хотите получить доступ (включая все параметры get/post), отправки данных, прослушивания данных, анализа данных, размещения в db. Клиент будет просто запрашивать db, получать результаты, фильтровать/упорядочивать/управлять в коде gui. QtDeclarative может быть хорошим выбором, позволяющим пользователям создавать свои собственные запросы (подумал, но еще не реализовал это), которые вы также можете выполнить.

  • Я бы предложил postgres, mysql или любой db, реляционный или нет (см. mongodb, но не думаю, что PyQt еще поддерживает его, но вы можете использовать любой python lib с pyqt красиво). Затем вы можете хранить данные там, заставлять клиентов запрашивать его и клиент сидеть на сервере, который имеет дополнительные функции для запроса сайтов и вставки данных. Хотя это может быть лучше использовано как инструмент cli, который получает данные и вставляет их в db (чтобы вы могли запускать его при задании cron, если захотите).

Вам нужно будет только разработать код клиента и схему базы данных. [1] Помните, что db может иметь несколько клиентов и пользователей, напрямую подключающихся к серверу базы данных. Единственное реальное предостережение - это настройка сервера для прослушивания только на LAN для получения клиента, а разрешения пользователей установлены правильно. Это просто косметически отличается от подключения webapp к db. Вы просто предоставляете больше пользователей и клиентов.

Ваша самая большая проблема должна заключаться в том, чтобы разобраться, как бороться с утомительностью программирования GUI: P

  • 0
    Спасибо! Этого должно быть достаточно, чтобы, по крайней мере, указать мне правильное направление, и это действительно все, что мне нужно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню