0

最近Djangoを学び始めました。簡単

に言うと、組み合わせることを選択した場合:

  • 私のサーバー側のdjangoフレームワーク
  • ミドルウェア層としての REST
  • 一部のクライアント側フレームワーク (React、Angular など)

django のMVC コンポーネントのうち、不要になるものはどれですか? テンプレートのコンポーネント
だと思います。この場合、必要のない他の基本的なコンポーネント (モデル/ビューなど) はありますか?

4

1 に答える 1

0

投稿に基づいて、Django を使用してデータベースからデータを取得し、JSON 形式でクライアントに返すだけであり、テンプレートがクライアント側で (Angular などを使用して) レンダリングされると仮定すると、あなたは正しいと思います。おそらく Django テンプレートは必要ありません。ただし、次のことを行うには、何らかのモデル (Django モデルを使用するか他のものを使用するかに関係なく) と、コントローラー (Django がviewsと呼ぶもの) が必要になります。

  1. URL ルーティングを行います (つまり、一部の URL を一部のコントローラー/ビュー関数にバインドします)。
  2. ある種のサーバー側処理を行います。アプリが単一ページのアプリであり、多くのクライアント側処理を行う場合でも、サーバー側でさまざまな種類のビジネス要件と検証を実装する必要がある可能性があります。これらの要件の一部はモデルにアタッチできる可能性がありますが、コントローラーに実装する必要がある場合もあります。

そのため、コントローラー (別名ビュー) は、アプリの構造によってはかなり「細身」になるかもしれませんが、それでもある程度は必要になります。DB にクリーンで一貫性のある API が必要な場合は、モデルが常に必要になります。

編集: これをさらに拡張するには、Django REST Framework と呼ばれる Python ライブラリがありますが、RESTful API の構築を支援するためのものです。Django や追加のライブラリを利用しなくても、Django を使用して RESTful API を自分で構築できます。この質問に対するユーザー D. Shawley の回答として、RESTful プログラミングとは正確には何ですか? -- 基本的に RESTful API は、リソースが永続的な識別子 (この場合は URI) によって識別され、共通の動詞セット (この場合は GET、POST、DELETE などの HTTP メソッド) を使用してリソースが操作される API です。等)。したがって、この URI を名詞として、HTTP メソッドを動詞として使用するという考え方を使用すると、Django フレームワークは次の RESTful 操作をサポートする可能性があります。

  • GET https://your-app.com/product/123- この操作は、ID で識別される製品を取得します123
  • POST https://your-app.com/product- この操作は新しい製品を作成します
  • PUT https://your-app.com/product/123- この操作は、ID で識別される製品を更新します123
  • DELETE https://your-app.com/product/123- この操作は、ID で識別される製品を削除します123

これらの操作から返されるデータは、必ずしも特定の形式 (JSON、XML など) である必要はありません。REST の原則に厳密に従っているアプリケーションでは、クライアント (RESTful API の消費者、この場合はフロントエンド アプリ) はAccept、データを消費する形式を (HTTP ヘッダーを使用して)指定できます。 .

あまり混乱しないことを願っていますが、REST アーキテクチャは一連の原則にすぎず、Web プログラマーが開発する API は必ずしもこれらの原則に 100% 準拠しているとは限らないことをはっきりさせておきたいと思います。アプリケーションが RESTful 原則に厳密に従う必要があるかどうかは、特定の要件によって異なります。Django を使用して RESTful API を構築することで、何を達成したいですか? 多くの開発者にとって、答えは単純に「サーバー側のリソースを取得して更新するための Angular/React/etc. アプリ用の使いやすいインターフェースを用意するため」です。

于 2018-04-07T20:41:28.650 に答える