Django vs. Model View Controller [closed]

According to the Django Book, Django follows the MVC pattern closely enough to be called an MVC framework.

Django has been referred to as an MTV framework because the controller is handled by the framework itself and most of the excitement happens in models, templates and views.

You can read more about MTV / MVC here:

The MTV (or MVC) Development Pattern

If you’re familiar with other MVC
Web-development frameworks, such as
Ruby on Rails, you may consider Django
views to be the controllers and
Django templates to be the views.

This is an unfortunate confusion
brought about by differing
interpretations of MVC.

In Django’s interpretation of MVC, the view
describes the data that gets presented
to the user; it’s not necessarily just
how the data looks, but which data is
presented.

In contrast, Ruby on Rails
and similar frameworks suggest that
the controller’s job includes deciding
which data gets presented to the user,
whereas the view is strictly how the
data looks, not which data is
presented.

Leave a Comment