2009-04-27 15 views
7

Djangoベースのものか、PythonベースのReporting Services(JasperReportsやSQL Server Reporting Servicesなど)があるのでしょうか?DjangoまたはPythonのデータベースレポートサービス

基本的には、レポートを作成し、レポートをコーディングしなくてもCSVやHTML、PDFなどの電子メールで送信することが大好きです。レポートをコーディングする必要があっても気にしませんが、スケジュールなどを含むフレームワーク全体が素晴らしくなります。

PS。 Django Appsを使ってDjango Appsを使うことができるのは分かっていますが、必要なアプリをまとめたPinaxやSatchmoなどの統合ソリューションやプロジェクトがあれば期待していました。

PPS:それはPostgresのをオフに動作しなければならない

答えて

3

私はちょうど調査の公平なビットの後、私は私の調査結果を報告するだろうと思った...

http://code.google.com/p/django-reporting/ - 私はこのプロジェクトは、私は必要な機能の多くのための素晴らしい候補者のように見えると思います。残念ながら、この文書(2009年4月29日)の時点ではDjango 1.1はリリースされていません。少なすぎるコードなしでレポートを作成できることは少なくともあります。

http://code.google.com/p/django-cron/ - cronのアクセス

http://www.xhtml2pdf.com/せずにジョブのスケジューリングのための有望な見て - 一緒にこれらのすべてのDjangoのメール機能で素敵なレポーティングを作ることができるPDF

にHTMLに変換するためのPDFライブラリを使用したり、ReportLabsことでしたシステム。

+1

非常に重要な発言:XHML2PDF/PisaはGPL – sorin

+0

でライセンスされています。商用ライセンスは現在500ユーロです。 – sorin

+0

あなたの応答をありがとうSorin –

4

そうでしょうI.悲しいことに、しかし、各

「私はレポートをコーディングすることなく...レポートを作成できるようにするのが大好きです」レポートはユニークでカスタムコードが必要です。

DjangoモデルからCSVへは簡単です。そこからいくつかのレポートを始めてください。

import csv 
from myApp.models import This, That, TheOther 
def parseCommandLine(): 
    # setup optparse to get report query parameters 
def main(): 
    wtr= csv.DictWriter(sys.stdout, ["Col1", "Col2", "Col3"]) 
    this, that = parseCommandLine() 
    thisList= This.objects.filter(name=this, that__name=that) 
    for object in thisList: 
     write.writerow(object.col1, object.that.col2, object.theOther.col3) 
if __name__ == "__main__": 
    main() 

HTMLはかなり簡単です - DjangoにはHTMLテンプレート言語があります。 render_to_responseではなく、テンプレートをレンダリングしてstdoutに書き込むだけです。アルゴリズムの核心は、興味深いことに、CSVを書くことと非常によく似ています。同じように、それほど賢いことなく、あなたは両方を行うデザインパターンを持つべきです。

CSVが動作したら、Djangoのテンプレートを使用してHTMLを追加します。

実際にフォーマットを細かく調整する必要があるため、PDFは難しくなります。これにはPythonライブラリがたくさんあります。しかし興味深いことに、PDF書き込みの全体的なパターンは、CSVやHTML書き込みと非常によく似ています。

電子メールとは、直接PythonのsmtplibまたはDjangoのemailパッケージを使用していることを意味します。これはあまりにも難しくありません。すべての部分がそこにあります、上記の出力ファイルをいくつかの配布リストに電子メールで送るだけです。

スケジュールは、crontabを最大限に活用するために少し考えています。これはおそらく仕事の最も難しい部分です。

+0

お返事ありがとうございます!私が時間を得ることができれば、私はpinax/satchmoタイプのプロジェクトを開始するかもしれませんが、報告してください! 考えてみてください! crontab、htmlからpdfへのライターアプリ、レポートとしてビューを保存してスケジュール設定できるようにするアプリがあります。 他にもいくつかアイデアがあれば教えてください! –

関連する問題