cin*_*ada 4 python django model-view-controller django-views
我正在尝试使用Django,之前曾与CakePHP合作,所以我的MVC背景就是这样.我知道Django稍微不同的MTV架构,并且对单片模型文件很好 - 我可以处理的一个文件中有多个类.
但我对如何进行视图感到困惑(这与MVC中的控制器大致相同,对吗?).我见过的例子中只有一个views.py有像index(),view()等等的方法.但是如果我有一堆用户可以创建和拥有他们可以共享的小部件,例如,我想为用户模型/users/view运行view(),并且为小部件模型/widgets/view运行view().
我没有看到任何方法将它们分开,也不知道正确/传统/正确的方法是什么.我可能只是难以绕过Django的做事方式.我应该有方法view.py是user_view和widget_view?这看起来很笨重.
或者我应该有user_view.py甚至user/view.py包含index()和view()?我可以引用URL路由中的那些吗?Django和这类事情通常如何完成?
这可能最终与这个答案有关(或者甚至通过这个问题解决),但我更多地问一个问题,即考虑这些事情的惯例和正确的方法是什么.
另外,文档/示例不应该更清楚吗?到目前为止,我对这些文档印象深刻,但我很确定大多数网络应用程序都会处理多个"对象",而且在我看来,这种情况经常会出现.
Python视图文件只是Python模块.视图本身只是可以在任何你喜欢的地方生活的函数 - 甚至不需要调用模块views.py.urlconf(in urls.py)可以在任何地方引用视图.
分离出来的一个显而易见的方法是分离应用程序,这在文档中有很好的介绍 - 您还可以为每个应用程序分别使用urls.py文件,并include在主站点级别urls.py中使用以包含所有子文件.
但是没有什么可以阻止你将单个应用程序中的视图细分为多个文件 - 例如,通过创建一个views模块,包含一个(空白)__init__.py和许多其他视图文件.
或者,如果你确实只有特定模型的视图 - 并且你很惊讶很少这样的情况 - 再次,你可以在模型类本身上创建你的视图类方法.所有视图都要做的是接受请求和任何其他参数,并返回响应.
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |