2008-08-22 23 views
2

Django/Pythonを使い始めたばかりで、Djangoが求めているMTVのプログラミングモードに移行しようとしています(主張しています)。どのような関数がモデルのメソッドでなければならないのか、単純なものであるのかビューでの関数であるのかを決めることは、今まで混乱していました。誰かが、Webフレームワークのプログラミングについて、より一般的な、抽象的な言い方について議論している本、ウェブサイト、ブログ、スライドショーを知っていますか?私は、オブジェクト指向のプログラミングに関する本がそれをするだろうと思っていますが、それは過度のものであるように感じます - 私は何かWebフレームワーク特有のものを探していました。Webフレームワークプログラミングの考え方

答えて

0

あなたは絶対にジャンゴにダイビングに設定されていないと、スタートとして何かをしようと気にしない場合は、あなたがあなたのアプリケーションthird party engineを使用して、独自の道をテンプレートすることを可能にするショットを、WSGI与えたいと思うかもしれません、 Djangoのルールに正確に従わなくてもいいからです。これにより、より低いレベルの処理要求を覗くことができるので、Djangoが何をしているのかを少し深く理解することができます。

0

概要として役立つリンクがいくつかあります。

自分の経験から、MVCベースのWebフレームワークを初めて使用したとき、私が持っていた最大の問題はモデルでした。私の指からSQLを出して、私にオブジェクトを使用させるのはちょっと変だと感じました。 SELECTステートメントではなくオブジェクトとして自分のデータを考えるようになると、データは簡単になり始めました。

1

ジャンゴでの私の基本的なルールがある:あなたが考えられるビューそのものよりも、他のどこかからの機能が必要なことができれば、それはに属していませんビュー機能。

また、Django Pluggablesに多数のアプリをダウンロードし、どのように表示するかを確認することをおすすめします。

0

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

1

を実行すると、には良いガイドがあります。ここで覚えておいてください。Djangoは専門用語で少し特殊です。モデル、テンプレート、およびビューには「MTV」が使用されます(途中でURLディスパッチャも言及することができます)。一方、より標準的な用語セットは、モデル、ビュー、およびコントローラの「MVC」です。

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

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

Djangoのテンプレートは、他の場所のビューと匹敵します。ここではプレゼンテーションがあり、他には何もありません。Djangoが非常に小さな論理コマンドを必要とする場面では、他のフレームワークでは、プレゼンテーションの論理的要素(ループ、ブランチなど)とともに、現在のHTMLよりも何もしないことをお勧めしますが、もの。

  • モデル:データは
  • コントローラ(ジャンゴでビュー)オブジェクト:データプロセス
  • ビュー(ジャンゴでのテンプレート):プレゼンテーション
  • 要約するので

ああ、btw:Django固有のガイドについては、グラムThe Django Book

1

は、私は本当に前に怒りではDjangoを使用していませんでしたが、RailsとCakePHPの中で(と拡張子によって、任意のMVCのWebフレームワーク)あなたの方法を整理するFat Model, Skinny Controllerアプローチは、私にとって本当の目を見張るてきました。