python - 使用 MVT 的正确方法是什么?
问题描述
我刚开始使用 Django,现在面临一个概念问题:如何正确使用 MVT?更具体地说,如何从一个函数管理多个类?
通常,使用 MVC 我会做这样的事情:
模型.py:
class House:
def __init__(kitchen, living_room):
self.kitchen = kitchen
self.living_room = living_room
class Kitchen:
def __init__(size):
self.size = size
class LivingRoom:
def __init__(remark)
self.remark = remark
一些控制器会这样做:
def build_house(kitchensize: str="big", tidyness: str="tidy"):
my_kitchen = Kitchen(kitchensize)
my_living_room = LivingRoom(tidyness)
my_house = House(big_kitchen, tidy_living_room)
return my_house
我对放置在哪里感到困惑build_house
;它与视图无关,因为我需要在使用它的每个视图中重写它。这也无关紧要,models
因为通常模型不应该实例化其他模型,对吧?
所以我所做的是创建一个controllers.py
包含所有控制器逻辑(在本例中为build_house
函数)的文件,即管理模型、解析文件......以及一个utils
包含所有未保存在数据库中的类的文件夹。
这有助于我尽可能保持 mymodels
和 myviews
的整洁和可重复使用。它还节省了时间,即:如果我需要build_house
不同视图中的函数,我将从中调用build_house
函数controllers.py
而不是重写它。
我以错误的方式使用 Django 吗?如果是的话,任何人都可以以正确的方式调整我的例子吗?
解决方案
推荐阅读
- c# - 如何在特定分数上加快生成的预制件?
- reactjs - 如何测试本地存储?
- angular - 如何解决angular4中的区域已加载错误?
- django - django 身份验证 ldap | 在管理面板中添加 LDAP 用户
- r - 根据 if 语句打印乳胶文本以制作 PDF
- javascript - 如何使用内部文本作为对象键
- angular - Angular- kendoGrid 在更改输入值(过滤器)之前不显示数据
- javascript - 将鼠标悬停在图像上时尝试显示 div .. 无法使其工作
- c# - 有一种注册服务的方法,它以隐式类型给出,并且构造函数具有多个原始类型的参数
- c++ - 如何调用对象在函数内部的类方法