2

私は、Oracle DB から毎日の財務データを取得し、一連の電子メール アドレスに毎朝電子メールで素敵なレポートを送信する Python 関数を作成しました。

これらのレポートをユーザーごとに構成するために、レポートをセットアップする簡単なスクリプトを用意し、そのスクリプトを cron ジョブとして毎日実行しています。

このスクリプトの行は次のとおりです: Budgets.sendit('abc02','user@email.com',0,0,0,0)

この 1 行で、「ユーザー」がプロジェクト acb02 に関する電子メールを取得するために必要なすべてが実行されます。そのような行は約100あり、毎日成長しています。

私は自分の成功の犠牲者です。このスクリプトを管理するために、何十人もの人々から絶え間なく要求を受けています。独自の VM/Python インスタンスを設定してもうまくいきません。

私の目標: ユーザーが LPAD サーバーに対して認証し、Python 関数を使用して実行する独自のレポートを構成できる Web ページ。

私の質問: このようなものをセットアップするための基本的なアーキテクチャとして何をお勧めしますか? スクリプトに行を追加するための Web フォームを作成することも最初の一歩ですが、それは危険に思えます。

完全な開示: 私は独学の Python 開発者であり、主な仕事として信号処理を行っているため、学習曲線がありますが、誰かが私を正しい方向に向ければ、通常はそれを成し遂げることができます。

4

2 に答える 2

1

私の推奨事項は、Django ( https://www.djangoproject.com/ ) や Pylons ( http://www.pylonsproject.org/ ) のようなフレームワークを使用することです。セットアップ時間を短縮し、すべての定型的なセットアップを行うもの。Django は、LDAP ( http://pythonhosted.org/django-auth-ldap/ )などの他のサービスとの統合を幅広くサポートしています。組み込みのユーザー管理、管理ビュー、モデルに基づくフォーム構築により、Django は探しているものをカバーしているように思えます。

The Django Book ( http://www.djangobook.com/en/2.0/index.html ) や Django プロジェクトのドキュメント ( https://docs.djangoproject.com/en/ 1.5/ )。あなたは独学が得意なようですので、これらのリソースは十分すぎるはずです。これらは、私があなたのようなプロジェクトを開始するために使用したリソースです。ただし、学習中にアプリケーションを構築しようとしないでください。チュートリアルに従って、作成してほしいものを作成するだけです。パターンとアーキテクチャを理解します。次に、パターンを独自のアプリケーションに適用します。ドキュメントやチュートリアルを翻訳しながらアプリケーションを構築しようとすると、混乱を招き、最終的には障害になる可能性があります。幸運を!

于 2013-08-02T20:30:27.347 に答える
1

これを実装する方法については、さまざまな意見が寄せられる可能性がありますが、考えられる 1 つの方法を次に示します。

  1. テキスト ファイル、SQLite データベースなどを使用して、電子メール アドレスのリストと「オプション」を管理します。人々が自分の設定を管理することを期待している場合 (つまり、仕事のメールの購読を解除する、設定を変更するなど)、SQLite の方が適している可能性があります。

  2. フレームワーク (Django など) を使用して Web インターフェースを実装することを検討してください。その ORM により、データベースとのリンクがかなり簡単になり、また、開発の手間のかかる作業の多くが不要になります。

  3. LDAP 経由で認証されたユーザーのみにログインを許可するように構成した Web サーバー (つまり、apache など) 経由で認証が行われるようにします。これにより、LDAP 認証作業の多くが手から離れ、Web サーバーで処理されます。Web アプリは、環境変数を介してその情報にアクセスできます。

最後に、既存のスクリプトを変更して、作成したデータベース/ファイルからそれらの設定を保存するようにします...

見るべき場所:

https://www.djangoproject.com/ <-- Django プロジェクト

http://docs.python.org/2/library/sqlite3.html <-- Python 経由で SQLITE にアクセスする

http://httpd.apache.org/docs/2.2/mod/mod_ldap.html <-- Mod_ldap with apache (apache で LDAP と連携)

于 2013-08-02T20:31:17.740 に答える