首页 > 解决方案 > 使用 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 吗?如果是的话,任何人都可以以正确的方式调整我的例子

标签: pythondjangoseparation-of-concernsconceptual

解决方案


推荐阅读