1

Rails から Django に切り替えて視野を広げたいのですが、ある疑問が頭に浮かびました。

私の趣味ベースの開発アプローチはパッチと接着剤であるため、私のRailsアプリはかなり混乱しています。私は、Django がプロジェクトとアプリを分けていることを非常に早い段階で見てきました。彼らのサイトによると、プロジェクトは多くのアプリで構成されており、1 つのアプリで多くのプロジェクトに使用できます。

これは私のサイトの領域間の境界線をより明確にするので、私は興味をそそられました. それに関するいくつかの例と情報を見つけようとしましたが、次の質問に答えることができませんでした。

そのようなアプリはどのくらい大きい/小さいですか? 彼らは密接にやり取りすることができますか/する必要がありますか?

たとえば、ユーザーのプロファイルを処理するアプリと、それらのユーザーからのブログ投稿やコメントを処理する別のアプリを用意するのは賢明ですか? (私のサイトでは、ユーザーはプロファイルが異なる複数のブログを持つことができます)。それとも、他の方法で使用することを意図していますか?

4

4 に答える 4

6

django アプリは、python パッケージの凝った名前です。本当に、それだけです。django アプリを他の python パッケージと区別する唯一の点は、他の django 機能によって自動検出できるテンプレート、モデル、またはその他の機能が含まれているため 、 のINSTALLED_APPSリストに表示されることが理にかなっているということです。settings.py

優れた django アプリは、1 つのことだけを適切に実行し、それを使用する可能性のある他のアプリと密結合することはありません。contribdjango では、この規則に従った名前空間でさまざまなアプリが提供されています。

あなたの例では、アプリを考案する良い方法は、ユーザー プロファイル用に 1 つ (または多くの既存のプロファイル アプリの 1 つを使用)、ブログ投稿用に 1 つのアプリ (または既にこれを行っている多くのアプリの 1 つ)、コメント用に 1 つのアプリを用意することです。 、ブログ投稿とは別に (これにも既存のアプリを使用できます)、そして最後に、3 つを結び付ける非常に小さなアプリです。

于 2011-09-01T20:23:08.993 に答える
1

アプリを使用する目的は、それらを再利用可能にすることです。Django はDRY principleDRY が好きDO NOT repeat yourself

アプリはできるだけ小さくし、疎結合にする必要があります。そのため、アプリが適切に機能するために別のアプリを必要としないようにする必要があります。

Django では、テーブルごとにアプリを作成することを推奨しています (常にというわけではありませんが、アプリを拡張したい場合は、必ずテーブルを分割してアプリをペアリングする必要があります。そうしないと、コードの保守に苦労することになります)。

たとえば、ユーザー向けのアプリ、販売向けのアプリ、コメント向けのアプリ、記事向けのアプリを作成できます。コードを維持するのが簡単になり、適切に行った場合は、アプリをproject少し (もしあれば) 変更するだけで他のアプリで使用できます。

Projectのは、のコンパイルですapp。ユーザー アプリ、記事アプリ、コメント アプリを組み合わせて、プロジェクト、つまり Web サイトを作成できます。

django を学びたい場合は、以下をチェックすることをお勧めします。

http://www.djangobook.com/

http://docs.djangoproject.com/


一言だけアドバイス。コードが失敗する可能性が高いだけでなく、コードが何をしているのかわかりません。プロジェクトで他の誰かのコードを使用する場合は、少なくともそれらを入力してください。これにより、コードが何をしているかを理解できるか、少なくともアイデアが得られます。

独自のコードを作成することは常にメンテナンスに適していますが、これは世界を再発明する必要があるという意味ではありません。ライブラリを使用し、それらのドキュメントを参照して適切に使用できます。

ドキュメンテーション、チュートリアルはあなたの親友です。

幸運を。

于 2011-09-01T23:58:35.970 に答える
0

プロジェクトは基本的にプロジェクトが存在する場所です...プロジェクトでは、URL、プロジェクト設定などをセットアップします。

アプリは、プロジェクト内で使用される独自のデータ モデルとビューを定義します。必要に応じて、これらをプロジェクト間で移動できます。

Django サイトのチュートリアルを実行することを強くお勧めします。プロジェクトとアプリとは何か、両方を管理する方法、管理パネルの使用方法、アプリを複数のプロジェクトで使用できるようにする方法などを示しているからです。

于 2011-09-01T20:25:49.897 に答える
0

ポータル = django プロジェクト

広告システム、ギャラリー写真、商品カタログ=アプリ

于 2011-09-01T20:26:09.620 に答える