Django的MVC模式对于非数据库驱动的车型?
-
18-09-2019 - |
题
我只是我的工作方式,通过Django的,真的喜欢它,到目前为止,但我有一个问题,我不知道什么是典型的方式来解决它。
假设我有这应该当一些复杂的Python对象更新要更新的视图,但对象不是由数据库驱动的,说这是由AJAX驱动的呼叫或由用户直接或东西。
当这段代码去?如果仍走在models.py ????
解决方案
您models.py
可以(有时是)空。您没有义务必须映射到数据库的模型。
您应该还是有一个models.py
文件,使Django的管理快乐。该models.py
文件名是很重要的,它更容易有一个空文件,而不是尝试改变各种管理命令期待的文件。
“模型” - 一般 - 不必映射到数据库中。 “模型” - 如MVC设计的一般部件 - 可以是任何
您可以 - 而且常常 - 定义自己的“模型”模块,您的看法使用。 只是不要把它models.py
因为它会混淆Django管理拨打其具有实际意义的应用程序:foo.py
。这foo.py
操纵,巩固您的应用程序真正的东西 - 不一定是Django的Model.model
子类
Django的MVC不需要数据库映射。 它明确地预期该模块命名models.py
中有一个数据库映射。所以,如果你有没有实际的数据库映射使用空models.py
。
您views.py
可以使用
import foo
def index( request ):
objects = foo.somelistofobjects()
*etc.*
Django的让您轻松,没有数据库映射工作。您的模型可以很容易地事情。只是不要把它models.py
。
修改即可。
与模型注册的看法?否。
在更新由控制器模型视图得到通知?否。
是模型严格的数据respresentation,因为这是真正的MVP?是。
读取Django文档。这很简单。
网页请求 - > URL映射 - >查看功能 - >模板 - >响应
该模型可以由视图函数一起使用。该模型可以是数据库映射,或者它可以是任何其他的事情。