web-dev-qa-db-ja.com

Djangoはフロントエンドまたはバックエンドですか?

バックエンドはDjangoで実装されていると主張する人をよく見かけますが、Django=はフロントエンド用ではないでしょうか。プレゼンテーション。何か不足していますか?

30
Kar

どちらでもない。

Djangoはフレームワークであり、言語ではありません。 PythonはDjangoが記述されている言語です。

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

しかし、Djangoは、「Django admin」という非常に有名なツールです。自動生成されたバックエンドにより、多くの簡単なユースケースで多くのコーディングを行わずにWebサイトを瞬時に管理できます。

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

バックエンドの場合、Djangoにはデータソースを簡単に操作できるORMが付属しています。フォーム(HTMLに依存しない実装)はユーザー入力を処理し、データとシグナルを検証します、オブザーバーの実装パターンに加えて、多数のユースケース固有の気の利いた小さなツール。

バックエンド作業の残りのすべてについてDjangoは役に立たず、通常のPythonを使用するだけです。ビジネスロジックはかなり広い用語です。

Djangoはアプリの概念に付属し、自己包含プラグ可能Djangoライブラリは問題を解決します。Djangoコミュニティは巨大であるため、Vanilla Djangoがしない特定のビジネスロジックを実行するアプリが多数あります。

57
e-satis

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

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

フロントエンドとバックエンドはすべてセマンティクスです。組み込みのadmin contribパッケージを使用して、完全に「バックエンド」であるDjangoアプリを構築し、完全に別のアプリケーションのデータを管理することもできます。ビューとテンプレートを使用しますが、データを管理するために他の何かを使用します。ほとんどの場合、両方に使用されます。組み込みの管理(「バックエンド」)は、データを管理し、構築する簡単な方法を提供しますDjango=内のアプリは、さまざまな方法でそのデータを表示します。しかし、もしあなたがそのようであれば、Djangoで独自の「バックエンド」を作成することもできます。 。

7
Chris Pratt

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

(b)不足しているものがわかりません-Webアプリケーションでビジネスロジックを使用できない理由はありません。 Djangoでは、通常、プレゼンテーションロジックがビジネスロジックから分離されることを期待します。同じアプリケーションサーバーでホストされているからといって、2つのレイヤーが絡み合っているわけではありません。

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

3
Marcin