Is Django an MVC System?

My objective in this topic is to confirm or disprove a rumor, found on thousands of pages on the Internet, where Django is described without proof as an MVC system. I have very little experience in MVC. In that experience, the MVC elements were unmistakable. The following images are from a live system running as MVC


click to view image with correct aspect ratio (1.19) and full size image (1803px x 1519px)

The letters c-o-n-t-r-o-l-l-e-r do not appear in that sequence anywhere within a new freshly installed Django project.

Digging into the python installation, where Django hangs many of its hats, there are at least occurances of the words “view” and “model”. However, this is behind the scenes and not particularly relevant to working within the project directory.

MVC is an architectural pattern describing the organization of an application. As such, it’s not a precise term that always lends itself to a strict yes/no answer, and, the structure described by the term MVC does differ between whether you’re talking about a web app or a desktop app.

All the above is to say that the answer is either yes or no, depending upon which definition of MVC you choose to use and how you have actually architected your application being built within Django.

For the official take on this, see the Django FAQ.

2 Likes