2

私は Django/Python を使い始めたばかりで、Django が要求する (主張する) MTV モードのプログラミングに移行しようとしています。どの関数をモデルのメソッドにするか、単純にビュー内の関数にするかを決定することは、これまでのところ混乱を招いていました。本、ウェブサイト、ブログ、スライドショーなど、Web フレームワーク プログラミングをより一般的で抽象的な用語で説明しているものを知っている人はいますか? オブジェクト指向プログラミングに関する本だけで十分だと思いますが、それはやり過ぎだと思います。Web フレームワーク固有の何かを探していました。

4

6 に答える 6

1

良いガイドを見つけたら、覚えておくべきことがあります。Djangoは、その用語が少し特別です。モデル、テンプレート、およびビューに「MTV」を使用します(途中でURLディスパッチャーについても言及できます)が、より標準的な用語のセットは、モデル、ビュー、およびコントローラーに「MVC」です。

モデルは両方の意味で同じです-フレームワークがオブジェクト/リレーショナルマッピング(Djangoが行う)を実装している場合、多くの場合データベーステーブルにリンクされているデータエンティティのモデル。

しかし、残りの2つの用語は混乱を招く可能性があります。Djangoがビューについて話しているところ、「世界の残りの部分」はコントローラーについて話している。基本的な考え方は、これがプレゼンテーションロジックが行われる場所であるということです。計算の計算、配列の並べ替え、データの取得など。DjangoのURLディスパッチャーも従来のコントローラーの概念の一部だと思います。

Djangoのテンプレートは他の場所のビューに匹敵します-ここにあなたのプレゼンテーションがありますが、他には何もありません。Djangoが論理コマンドの非常に小さなセットを強制する場合、他のフレームワークは、いくつかのプレゼンテーション論理要素(ループ、ブランチなど)を使用して、HTMLを提示する以外は何もしないことを推奨することがよくありますが、他のことをやめないでくださいもの。

要約すると、次のようになります。

  • モデル:データオブジェクト
  • コントローラー(Djangoで表示):データプロセス
  • ビュー(Djangoのテンプレート):プレゼンテーション

ああ、ところで:Django固有のガイドについては、TheDjangoBookを読むことを検討してください

于 2008-08-22T18:37:17.470 に答える
1

私はこれまでDjangoを怒りで実際に使用したことはありませんが、RailsとCakePHP(さらにはMVC Webフレームワーク)では、メソッドを整理するためのFat Model、SkinnyControllerアプローチは私にとって本当に目を見張るものでした。

于 2008-10-16T20:36:41.527 に答える
1

Django での私の基本的なルールは次のとおりです。ビュー自体以外の場所から機能が必要になる可能性がある場合、それはビュー関数に属しません。

また、 Django Pluggablesで大量のアプリをダウンロードして、それらがどのように機能するかを確認することもお勧めします。

于 2008-08-22T13:23:43.700 に答える
0

Django に完全に飛び込む準備ができておらず、最初に何か他のことを試しても構わない場合は、WSGI試してみるとよいでしょう。Django のルールに厳密に従う必要があります。これにより、リクエストの処理の下位レベルを覗くことができるので、Django が内部で何をしているのかをよりよく理解することができます。

于 2008-08-22T12:47:09.513 に答える
0

ビュー関数には、表示ヘルパーまたは表示ロジックのみを含める必要があります。ビュー関数がモデル自体にアクセスすることはありませんが、モデル データのパラメーターを受け取る必要があります。モデルをビューから分離することが重要です。したがって、関数がデータベースまたはデータベース オブジェクトへのアクセスを処理する場合、それはモデルに属します。関数が表示の書式設定を処理する場合、それはビューに属します。

于 2008-08-22T13:32:35.893 に答える
0

概要として役立つリンクをいくつか紹介します。

私自身の経験から言えば、MVC ベースの Web フレームワークを使い始めたときの最大の問題は、モデルに関するものでした。指から SQL をこじ開けてオブジェクトを使わせるのは、奇妙に感じました。データを SELECT ステートメントではなくオブジェクトとして考えるようになると、より簡単になり始めました。

于 2008-08-22T13:05:48.157 に答える