| Django term | Role | Roughly equivalent to |
|---|---|---|
| Model | Defines data structure, talks to the database | Model (same as MVC) |
| View | Contains the logic — decides what data to fetch and which template to render | Controller (confusingly, not the "View" in MVC) |
| Template | The HTML, with minimal logic, that renders the response | View (the actual MVC "View") |
Django's "View" does what MVC calls the "Controller"; Django's "Template" does what MVC calls the "View." Once that swap clicks, everything else about Django's structure is exactly what you'd expect. Django also ships its own request-routing layer (urls.py), which most MVC diagrams fold into "the controller" but Django keeps as an explicit, separate step.