2011-02-06 55 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。這是爲了動態報告,但毫無疑問,也有項目可以做靜態報告。但是他們可能不適合你所追求的數據和輸出。自己寫作意味着你確切地知道你得到了什麼,所以如果沒有太多的工作,繼續。