我只是在使用Django,到目前为止我真的很喜欢它,但我有一个问题,我不确定解决它的典型方法是什么。
假设我有一个视图,它应该在一些复杂的Python对象更新时更新,但这个对象不是由数据库驱动的,比如说它是由AJAX调用驱动的,或者直接由用户或其他什么驱动的。
这段代码放到哪里去了?它应该仍然在models.py中吗?
发布于 2009-08-17 23:07:15
您的models.py可以是空的(有时是空的)。您不一定要有一个映射到数据库的模型。
您应该仍然拥有一个models.py文件,以使Django的管理员满意。models.py文件名很重要,拥有一个空文件比尝试更改各种管理命令所期望的文件更容易。
“模型”--通常来说--不必映射到数据库。“模型”--作为MVC设计的通用组件--可以是任何东西。
您可以定义您自己的视图使用的“模型”模块,并且经常这样做。Django只是不要叫它 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。
编辑。
视图是否注册到模型中?不是的。
在控制器更新模型时,视图会被通知吗?不是的。
模型是严格的数据重新表示吗,因为这是真正的MVP吗?是。
阅读Django文档。这很简单。
网页请求-> URL映射->查看函数->模板->响应。
该模型可由视图函数使用。模型可以是数据库映射,也可以是任何其他东西。
https://stackoverflow.com/questions/1290891
复制相似问题