1

私は Django プロジェクトの開発をほぼ完了しました (いくつかのプラグ可能なアプリを使用)。

このプロジェクトを SaaS (basecamp のようなもの) として提供したいと考えています。

例: project1.mysaas.com 、 project2.mysaas.com など

道を示すためにあなたの専門知識を求めます。

私が考えた方法は次のとおりです。

  • 1 Sites を使用してサイト固有の設定を定義します。
  • 2 リクエストを検出し、それに応じて設定を設定するミドルウェア
  • 3 サイトごとに Django プロジェクトを作成 (プラグイン可能なアプリを取り込む)

ありがとう。

ところで、私はまったくの初心者です。

4

1 に答える 1

3

あなたの要件はまったく明確ではありませんが、難しいことは何もしていないと仮定します。また、「project1」、「project2」は特別なブランディングを必要としない顧客名であると仮定します。

まず、あなたのアイデアについて:

  1. 各サイトのブランドが異なる場合を除き、おそらくサイト フレームワークを使用する必要はありません。サイト フレームワークは、共通のデータ セットのさまざまなビューを提示するように設計されているため、うまく機能します。

  2. これは機能しますが、おそらく最善のアプローチではありません。

  3. これは手に負えません。

非常に多くの問題があるため、これは非常に難しいトピックです。読み始めるのに適切な場所はHigh Scalability ブログであり、特に関連するのは37signals Architectureに関する投稿です。

最後に、小さな SaaS アプリ (極端なスケーラビリティは必要ありません) で私が行っていることを次に示します。

  • サイト フレームワークを使用します (ユーザー ページはパートナー/再販業者によってブランド化され、各パートナーには固有のログイン ページがあるため)

  • mod_wsgi を使用して、すべての Django インスタンスからのリソースの使用を最小限に抑えます。

  • ミドルウェアの代わりに、ユーザーの会社を識別する共通コードをすべてのビューの上部に配置しました。ビューのロジックにこれが必要なため、ミドルウェアでは役に立たないと思います。

于 2009-08-20T11:42:23.683 に答える