为什么Django称它为“views.py”而不是controller?

2024-05-18 07:54:43 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
Confused by Django's claim to MVC, what is it exactly?

因为在MVC中,“视图”通常是模板。。。


Tags: todjango视图模板byisitwhat
2条回答

是的,Django不是MVC,Django更喜欢为Model Template View调用其MVC实现MTV。

有关Django和MTV的更多信息,请参见this博客

Django appears to be a MVC framework, but you call the Controller the “view”, and the View the “template”. How come you don’t use the standard names?

Well, the standard names are debatable.

In our interpretation of MVC, the “view” describes the data that gets presented to the user. It’s not necessarily how the data looks, but which data is presented. The view describes which data you see, not how you see it. It’s a subtle distinction.

So, in our case, a “view” is the Python callback function for a particular URL, because that callback function describes which data is presented.

Furthermore, it’s sensible to separate content from presentation – which is where templates come in. In Django, a “view” describes which data is presented, but a view normally delegates to a template, which describes how the data is presented.

Where does the “controller” fit in, then? In Django’s case, it’s probably the framework itself: the machinery that sends a request to the appropriate view, according to the Django URL configuration.

If you’re hungry for acronyms, you might say that Django is a “MTV” framework – that is, “model”, “template”, and “view.” That breakdown makes much more sense.

At the end of the day, of course, it comes down to getting stuff done. And, regardless of how things are named, Django gets stuff done in a way that’s most logical to us.

相关问题 更多 >