Использование Python для генерации данных JSON - PullRequest
1 голос
/ 06 февраля 2011

Я работаю над небольшим проектом, целью которого является создание отчета из базы данных для сервера.База данных SQLite содержит таблицы типа «соединения», «загрузки» и т. Д.

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

Я планирую использовать flot для графиков, потому что графики, которые он делает, выглядят очень красиво: flot graph

Это мой текущий план относительно того, как мои отчетыбудет работать:

  • Статический файл .HTML, который является отчетом.Он будет содержать заголовки, встроенные графы флота и т. Д.

  • Файл данных JSON.Они будут сгенерированы моим скриптом Python для генерации отчетов, в основном они будут содержать переменную JSON для каждого графа, представляющего набор данных, который граф должен отобразить.([100,2009-2-2], [192,2009-2-3] ...)

  • Сценарий создания отчета Python, он загрузит базу данных SQLite, запуститсписок заданных запросов SQL и выплюнуть файлы данных JSON.

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

Мои опасения:

  • Я чувствуючто сценарий Python в значительной степени бессмысленен, вся выполняемая обработка выполняется SQLite, мой сценарий в основном будет использоваться для хранения запросов SQL и упаковки выходных данных.Приложив немного больше работы, SQLite, вероятно, мог бы сделать это для меня.

  • Кажется, я решаю проблему, которая должна быть решена много раз, прежде чем принимать SQL-запросы, выкладывать симпатичные графики.в ежедневном отчете «должно быть сделано сотни раз.У меня просто возникают проблемы с отслеживанием любых расширенных реализаций.

Ответы [ 2 ]

3 голосов
/ 06 февраля 2011

Это звучит разумно для меня.

  • Вам нужен какой-то язык программирования для общения с SQLite. Вы можете сделать это на C, но если вы можете легко написать необходимый код на Python, почему бы и нет? Вы почти наверняка сэкономите больше времени на его написании, чем потеряете из-за отсутствия самой эффективной программы.
  • Определенно есть программы для анализа логов - например, я слышал о Piwik . Это для динамических отчетов, но, без сомнения, есть проекты для статических отчетов. Но они могут не соответствовать данным и выводу, которые вы ищете. Написание этого самостоятельно означает, что вы точно знаете, что получаете, поэтому, если это не слишком большая работа, продолжайте.
2 голосов
/ 06 февраля 2011

Мне кажется, что сценарий Python в значительной степени бессмысленен, вся обработка выполняется SQLite, мой сценарий в основном будет использоваться для хранения запросов SQL и упаковки выходных данных. Приложив немного больше работы, SQLite мог бы сделать это для меня.

Может быть и так, но даже тогда Python - отличный язык для склеивания. Кроме того, если вам нужно немного обработать SQLite, Python уже там.

Кажется, я решаю проблему, которая должна была быть решена много раз, прежде чем «принимать SQL-запросы, выкладывать красивые графики в ежедневный отчет» нужно было делать сотни раз. У меня просто проблемы с отслеживанием каких-либо широких реализаций.

Я думаю, что вы склоняетесь к общему классу отчетов, подаваемых по протоколу HTTP. Одна вещь, которая перекрывает ваш набор проблем, это Django , которая обеспечивает интерфейс Python между базой данных (поддерживается SQLite) и веб-сервером, а также систему шаблонов для ваших выходных данных.

Если вам нужен только один или два компонента решения, я рекомендую посмотреть SQLAlchemy для взаимодействия с базой данных, Jinja2 для шаблонов и / или Werkzeug для интерфейса HTTP-сервера.

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