2

いくつかのアプリを含む Django プロジェクトがあります。私のプロジェクトは現在、API が必要なところまで来ています。Tastypie を使用して、別のサーバーに API を配置する予定です。ただし、API は Web サイトと同じモデルを使用します。

これまでのところ、私の唯一の選択肢は次のとおりです...

アプリをサーバーにコピーします。つまり、同じモデルを使用する 2 つのアプリがあり、2 つのコード ベースを維持する必要があります --- 悪い!

それで、他の人はこれをどのように処理しますか?どのようなオプションがありますか?

私のモデルを何らかの方法で共有できますか?

4

4 に答える 4

3
  1. これを意味のあるものにするには、おそらく同じデータベースに接続する必要があります
  2. なぜ 2 つのコードベースが必要なのですか? 1 つのコードベースの 2 つのコピーがあります。
于 2013-05-30T21:49:11.027 に答える
2

このようにプロジェクトを分割することはお勧めしません。

モデルを編集するたびに、すぐに両方で編集する必要があります。そうしないと、同期がずれてしまう危険があります。代わりに、これは非常に苦痛になります。

サーバーがボトルネック?サイトと API マシンを分割し (ただし、同じものを使用models.py)、DB への接続をどこかで共有します。

DBがボトルネック?DB をより高速なマシン / クラスターにスケールアップし、同じサイトを使用して Web と API を提供します。

いずれにしても、1 つのコードベース、1 つのモデル セット、1 つの DB です。

于 2013-05-31T10:24:08.433 に答える
1

別のリポジトリにあるモデルを使用してアプリを作成し、git-submodule.

于 2013-05-30T21:50:18.367 に答える
1

同じサーバーの別のポートで API を実行してみませんか? これにより、最初から多くの問題を解決できます。サーバー間でデータベース接続を共有するには、セキュリティについて多くのことを考える必要があります。

また、異なるプロジェクトで同じアプリを再利用している場合は、アプリをパッケージ化してバージョン化することをお勧めします。解決しようとしている本当の問題について考え、常にそれを念頭に置いてください。すべての問題にはたくさんの解決策があり、適切な解決策を見つけることが違いを生みます。

于 2013-05-30T21:50:23.953 に答える