使用MVT的正确方法是什么?

2024-04-29 10:21:59 发布

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

我刚刚开始使用Django,现在面临一个概念问题:如何正确使用MVT?更具体地说,如何从单个函数管理多个类

通常,使用MVC我会这样做:

models.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文件夹,其中包含未保存在数据库中的所有类

这有助于我保持我的modelsviews尽可能整洁和可重用。它还节省了时间,即:如果我需要不同视图中的build_house函数,我将从controllers.py调用build_house函数,而不是重写它

我使用Django的方式是否错误?如果是的话,有人能用正确的方式修改我的示例吗


Tags: 函数pybuildselfsizeinitmodelsmy