On Jan 4, 10:36 am, Javier Guerra Giraldez <jav...@guerrag.com> wrote: > On Wed, Jan 4, 2012 at 8:20 AM, Andre Terra <andrete...@gmail.com> wrote: > > No, you don't need to go reading about what MVC means. Django is a MTV > > framework, not MVC. There are similarities, but the differences are enough > > to confuse your head if this is your first time with either one. > > I agree, i'd even say forget about MVC! > > this is a pet peeve of mine, MVC was originally defined as a _modular_ > design for OOP GUI frameworks. There, for every complex user > interaction, you define three modules (usually a class each, but not > necessarily): the Model that keeps the immediate data in an > OOP-friendly way, the View that presents it using a GUI, and the > Controller, that receives events and modifies the data in the Model, > and (sometimes) tells the View to update or change modes. > > Code reuse gets enhanced, since you frequently can use the same view > for different parts of the program, and the same model might be > presented in different ways by different views. configurability also > becomes a desirable trait, that lets use the same view or model code > for different objects, just by creating differently-configured > instances. > > many years later, when the 'three-tier' web architecture (storage > layer, business intelligence layer and presentation layer) was > well-known and viewed by some as overly complex for 'dynamic' web > apps, the MVC acronym got reused, but now it's a _layered_ > architecture for web apps: there you design a model layer (that > presents storage with a nice API), a View layer (comprising of some > data-gathering logic and templates to generate HTML) and a Controller > layer that...... is anything else needed? well, lets say it handles > URLs. > > As you can see, web MVC is totally different from GUI MVC, and it's a > very ill-fitting description, since it's about layers and not modules, > and the controller is so loosely defined (especially when compared to > the crisp definitions in GUI MVC) that every framework defines it > differently and in many cases add unnecessary complexity instead of > removing it (some PHP frameworks are particularly guilty of this). > > the MTV architecture in Django is far cleaner, since it acknowledges > that there's no controller (the URL handling part is too simple to be > a layer), and makes very explicit the separation between > data-gathering (view functions/classes) and presentation (templates) > > -- > Javier
Thank You Javier. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.