首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于非数据库驱动模型的Django MVC模式?

用于非数据库驱动模型的Django MVC模式?
EN

Stack Overflow用户
提问于 2009-08-17 22:40:35
回答 1查看 9.2K关注 0票数 24

我只是在使用Django,到目前为止我真的很喜欢它,但我有一个问题,我不确定解决它的典型方法是什么。

假设我有一个视图,它应该在一些复杂的Python对象更新时更新,但这个对象不是由数据库驱动的,比如说它是由AJAX调用驱动的,或者直接由用户或其他什么驱动的。

这段代码放到哪里去了?它应该仍然在models.py中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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可以使用

代码语言:javascript
复制
import foo

def index( request ):
    objects = foo.somelistofobjects()
    *etc.*

Django允许您在没有数据库映射的情况下轻松工作。你的模型可以是任何东西。只是不要叫它models.py

编辑

视图是否注册到模型中?不是的。

在控制器更新模型时,视图会被通知吗?不是的。

模型是严格的数据重新表示吗,因为这是真正的MVP吗?是。

阅读Django文档。这很简单。

网页请求-> URL映射->查看函数->模板->响应。

该模型可由视图函数使用。模型可以是数据库映射,也可以是任何其他东西。

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1290891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档