2011-02-06 56 views
1

我正在开发一个小项目,目标是从服务器的数据库生成报告。该数据库是SQLite,包含像'连接','下载'等表格。使用Python生成JSON数据

我生成的报告最终将包含许多图表,显示诸如'每日连接','本月顶部下载'等内容。

我打算使用flot的图,因为图这让看起来非常漂亮:flot graph

这是我为我的报告是如何工作目前的计划:

  • 静态.H其中的TML文件的报告。这将包含标题,嵌入式flot图等。

  • JSON数据文件。这些将由我的报告生成python脚本生成,它们基本上包含一个JSON变量,用于表示图应该映射的数据集的每个图。 ([100,2009-2-2],[192,2009-2-3] ...)

  • 报告生成python脚本,这将加载SQLite数据库,运行一组SQL查询和吐出取出JSON数据文件。

这听起来像是一个明智的设置?我不禁感到它可以改善,但我不知道如何。我希望报告是静态的。他们运行的服务器不能承受繁重的负载,因此动态生成的报告不存在问题,对于此应用程序也是不必要的。

我的担忧是:

  • 我觉得Python脚本在很大程度上是没有意义的,所有的处理都是由SQLite的进行,我的剧本基本上将被用于存储SQL查询和打包输出。多一点工作SQLite可能可以为我做这件事。

  • 看来我正在解决一个问题,必须多次解决这个问题之前'采取sql查询,在日常报告中吐出漂亮的图表'必须已经完成了数百次。我只是无法跟踪任何广泛的实现。

回答

2

我觉得Python脚本在很大程度上是没有意义的,所有的处理都是由SQLite的进行,我的剧本基本上将被用于存储SQL查询和打包输出。多一点工作SQLite可能可以为我做这件事。

也许是这样,但即使如此,Python是一种伟大的胶水语言。另外,如果你需要做一些SQLite不擅长的处理,Python已经在那里了。

看来我正在解决一个问题,必须多次解决这个问题之前,'采取sql查询,在日常报告中吐出漂亮的图表'必须已经完成了数百次。我只是无法跟踪任何广泛的实现。

我认为你倾向于HTTP服务报告的一般类。有一两件事,在那里,你的重叠问题集Django,它提供的数据库之间和web服务器Python接口(SQLite的支持),为您输出模板系统一起。

如果你只是想办法解决的一两件,那么我建议在看SQLAlchemy与数据库,Jinja2为模板接口,和/或用于Werkzeug HTTP服务器接口。

3

这听起来很明智。

  • 您需要一些编程语言才能与SQLite交谈。你可以用C语言来完成,但是如果你可以用Python轻松编写必要的胶水代码,为什么不呢?你几乎可以肯定会节省更多时间,而不会因为没有最有效的程序而失去。
  • 肯定有程序来分析你的日志 - 例如我听说过Piwik。这是为了动态报告,但毫无疑问,也有项目可以做静态报告。但是他们可能不适合你所追求的数据和输出。自己写作意味着你确切地知道你得到了什么,所以如果没有太多的工作,继续。