Recetly我已经看到一个应用程序支持django和mongodb作为后端,事情是,该应用程序没有models.py文件。所有的数据直接插入到views.py.I只需要一点点澄清特别的东西“在mongodb中使用没有models.py的django。”为什么在使用mongodb作为后端时,django中不需要“models.py”?
1
A
回答
2
models.py是检查固定关系模式并生成相关SQL代码以初始化(或修改)数据库的Django ORM方式。 “ORM”代表“对象 - 关系映射”。
Mongo不是关系型的,因此你不需要这种类型的模式。
(当然,可如果你的项目需求的变化后引起很多其他问题...)
但既然你不使用关系数据库,你并不需要一个关系模式。
2
一个简短的回答
models.py是都可以免费使用Django的ORM。 ORM将您的SQL架构与oopsy对象关联。 你可以在这里阅读更多关于ORM->https://en.wikipedia.org/wiki/Object-relational_mapping。
使用noSQL时,可以直接将对象推送到数据库中。所以,你并不需要一个ORM。
这就是说,是否使用它是一个有争议的部分。
PS。即使在使用SQL时,有些人更喜欢其他ORM而不是django的内置模型。
相关问题
- 1. 为什么ASP.NET WebAPI后端需要Microsoft.Owin.Cors?
- 2. 为什么要使用Django?
- 3. 为什么在使用let(ES6)时不需要使用闭包?
- 4. 为什么ivars在iOS中不需要时可可需要?
- 5. 为什么我需要使用超时?
- 6. 为什么不能直接使用Phalcon中的APC后端缓存 - 为什么需要$ frontCache?
- 7. 为什么在models.py中定义了get_absolute_url()?
- 8. 为什么django强制所有模型类在models.py中?
- 9. Ruby需要'文件'不起作用,但需要'./file'。为什么?
- 10. 为什么不需要document.getElementById?
- 11. 为什么在Django中需要基本或摘要认证?
- 12. 什么时候在Scala中需要@uncheckedVariance,为什么它在GenericTraversableTemplate中使用?
- 13. 为什么nginx作为前端和apache作为后端
- 14. 为什么在使用ES6和ReactJS时需要使用绑定?
- 15. 为什么utf8不能在Mongodb + mongoengine + django下工作?
- 16. MongoDB SetDefaultValue不起作用 - 为什么?
- 17. 为什么C#在类定义之后不需要分号?在C++中使用
- 18. 为什么`pthread_mutex_trylock`存在时需要`pthread_mutex_lock`?
- 19. 为什么需要
- 20. 为什么INSERT在使用子查询时需要时间
- 21. 为什么在签署代码时需要使用时间戳
- 22. 我什么时候需要使用Bigarray,为什么?
- 23. 为什么我不需要在关联数组中使用array_push?
- 24. 为什么我不需要在capnproto中使用AnyPointer :: initAs?
- 25. 为什么在MongoDB中使用锁定?
- 26. 为什么在MongoDB中使用分片?
- 27. 为什么要transpile node.js后端代码?
- 28. 为什么JSONP在这里不需要?
- 29. 为什么在Django中使用callproc()时,PROCEDURE不存在?
- 30. 为什么“我有我需要的”按钮有时在import.io中不起作用?
即使使用sql后端,它也是从不“需要”的粗糙的(尽管如此,它往往是个好主意) –
@JoranBeasley如果希望数据库后端由ORM生成而不是手动映射一切。但对于不使用ORM的人来说,当然,这不是绝对必要的。 (遗憾的是,我对[在Django中使用非ORM模型](http://zxq9.com/archives/616)...知道得太多了......) – zxq9