2012-01-31 14 views
11

バックエンドがDjangoに実装されていると主張する人がよく見ますが、フロントエンドになるはずのDjangoではありませんか?私はバックエンドがフロントエンドがプレゼンテーションを参照するビジネスロジックを指していると仮定します。何か不足していますか?フロントエンドまたはバックエンド用のDjangoはありますか?

+1

[サイト](https://www.djangoproject.com/)の最初のページには、djangoが何であるかが書かれています。高度なPython Webフレームワーク –

+1

@Marcin私はWeb開発にはとても新しいので、 Djangoがビジネスロジックのためにできることをちょうど混乱させました。 PayPalのようなサイトでは、Djangoを使用してすべてのトランザクション処理が中間層であるため実装されるとしますか?プレゼンテーションロジックはブラウザにありますか? – Kar

+0

@Kate:確かに、それはあなたが望むものであればどんなものでもかまいません。私はまだあなたが用語のこの問題にぶら下がっている理由を理解していません。 – Marcin

答えて

38

どちらもありません。

Djangoはフレームワークであり、言語ではありません。 PythonはDjangoが書かれた言語です。

Djangoは、質の高いWebアプリケーションを迅速かつ効率的に作成できるPythonライブラリのコレクションで、フロントエンドとバックエンドの両方に適しています。

しかし、Djangoは、 "Django admin"として有名です。自動生成されたバックエンドで、多くの簡単なユースケースの点滅でWebサイトを管理できます。

フロントエンドの場合、Djangoはデータの選択、整形、表示に役立ちます。 URL管理、テンプレート言語、認証メカニズム、キャッシュフック、ページネイターなどのさまざまなナビゲーションツールを備えています。

バックエンドの場合、DjangoにはORMが付属しており、ユーザー入力を処理し、オブザーバパターンの実装であるデータと信号を検証するフォーム(HTMLに依存しない実装)を使用してデータソースを簡単に操作できます。プラス、たくさんのユースケース固有のきめ細かいツールがあります。

Djangoのバックエンド作業の残りの部分については、通常のPythonを使用するだけです。ビジネスロジックは非常に広範な用語です。

また、Djangoにはアプリのコンセプトが付属していることを知りたい場合は、問題を解決するプラグイン可能なDjangoライブラリが含まれています。 Djangoコミュニティは巨大なので、バニラDjangoにはない特定のビジネスロジックを実行する多数のアプリケーションがあります。

+0

ビジネスロジックが3層アーキテクチャのプレゼンテーションから分離されている場合、ビジネスロジックにDjangoを使用する必要はありませんか?すべての 'webby'のものは、プレゼンテーションレイヤーにのみ存在します。 – Kar

+0

@Kate:djangoでは、ビジネスロジックをプレゼンテーションロジックから切り離すことが期待されます。 – Marcin

+0

Djangoにはビジネスロジック用のツールORMとフォームも組み込まれています。あなたはそれらを使用する必要はありませんが、あなたが行う場合、彼らはあなたに非常に速くなります。 –

3

(a)はDjangoはフレームワークではなく、言語

(b)は、私はあなたが欠けているものはよく分からないです - あなたはWebアプリケーションのビジネスロジックを持つことができない理由理由はありません。 Djangoでは、プレゼンテーションロジックをビジネスロジックから切り離すことを通常想定しています。同じアプリケーションサーバーでホストされているという理由だけで、2つのレイヤーがエンタングルしているというわけではありません。

(c)Djangoはテンプレートを提供しますが、クライアント側のコンテンツを生成するための豊富なライブラリは提供していません。

+0

ビジネスロジックがWebアプリケーションにある場合(シングルティアアーキテクチャ?)、フロントエンドとバックエンドの区別はありません。単なる一階層です。 – Kar

+0

@Kate:プレゼンテーションロジックはすべてブラウザに、Django中間層のビジネスロジックは、データベースレイヤーにすることができます。またバックエンドサービスを提供する別個のdjangoプロジェクトを持つこともできます。 – Marcin

4

実際には、ロジックがさまざまな「層」に分かれているMVC(Model-View-Controller)パターンについて話しているようです。 Djangoはフレームワークとして、MVC(緩やかに)に従います。ビジネスロジックを含み、データベースのテーブルに直接関係するモデル、実際にコントローラのように動作するビュー、要求を処理して応答を返すモデル、そして最後にプレゼンテーションを処理するテンプレートがあるモデルがあります。

Djangoはアプリケーション開発のための完全なフレームワークであり、その目的に必要なすべてのツールを提供します。

フロントエンドとバックエンドはすべてセマンティクスです。組み込みのadmin contribパッケージを使用して完全に別のアプリケーション用のデータを管理する、完全に「バックエンド」のDjangoアプリケーションを構築する可能性があります。または、ビューとテンプレートを使用するだけで、データを管理するために他の何かを使用するだけで、 "フロントエンド"のためだけに使うことができます。最も一般的には、両方のために使用されます。組み込みの管理者( "バックエンド")は、データを簡単に管理する方法を提供し、Django内でアプリケーションを構築してさまざまな方法でそのデータを提示します。しかし、もしあなたがそう思っていたら、Djangoで独自の "バックエンド"を作成することもできます。デフォルトの管理者を強制する必要はありません。

関連する問題