LoginSignup
10
8

More than 5 years have passed since last update.

djangoのclass-based views APIのクラス図

Last updated at Posted at 2016-08-08

class-based viewsに関して

djangoのviewは単なる関数ベースでの記述方法とクラスベースでの記述方法がある。djangoのドキュメントによれば、最初は関数ベースの規約があるのみだったがVIEW開発の経験がたまるにつれてパターンや共通のイディオムが存在することが認識され、抽象化されるに至った、らしい。

開発者はそれらの成果を「generic view」として利用することができる。genericという英語は日本語にすると「汎用的」などという意味になる。ドキュメントを一瞥してsampleをちょっと利用するぐらいでも使えないことはないが、正直どう動いているのかがわかりづらかった。
めんどくさいと思いつつ調べてみたら意外とキレイにコンパクトにまとまっていたので、そこまで時間もかからなかった。伊達に「汎用的」な構造になっているわけではなかった。class-baseなviewを書いていて、どこにどのロジックを入れればよいのか迷ったときはこのクラス図を見れば大体アタリがつくようになった気もしている。

下記の画像のクラス図はdjango.views.generic以下に収まっているクラスの関連を書き出しています。
フィールドやメソッドは端折って書いていないものもある。

django_class_base_view_api.png

クラスの依存関係はPyCharmの機能を使って楽に調べることができました。該当ファイルを開いてAlt-7で下記のようにクラスのみを左側に表示させる事ができました。(コードの折りたたみも別途できる。)
pycharm.PNG

クラス図の作成はEnterprise Architect使った。

10
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8