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中,爲什麼我需要__unicode__?
- 3. MongoDB作爲Django的會話後端
- 4. 爲什麼要使用Django?
- 5. 爲什麼我需要使用超時?
- 6. 爲什麼在使用let(ES6)時不需要使用閉包?
- 7. 爲什麼ivars在iOS中不需要時可可需要?
- 8. mongodb爲什麼我們需要getSisterDB
- 9. 爲什麼我不需要使用Adapter.notifyDataSetChanged()?
- 10. 爲什麼{{}}在src屬性中不起作用?爲什麼我需要ngSrc?
- 11. 爲什麼不能直接使用Phalcon中的APC後端緩存 - 爲什麼需要$ frontCache?
- 12. 爲什麼在models.py中定義了get_absolute_url()?
- 13. 爲什麼django強制所有模型類在models.py中?
- 14. Ruby需要'文件'不起作用,但需要'./file'。爲什麼?
- 15. MongoDB:爲什麼要在使用光標後關閉它?
- 16. 爲什麼我需要Iterator接口,爲什麼要使用它?
- 17. 爲什麼不需要document.getElementById?
- 18. 爲什麼我不需要
- 19. 爲什麼網絡應用需要後端語言?
- 20. 爲什麼要用django-south?
- 21. 爲什麼在Django中需要基本或摘要認證?
- 22. 服務器端爲websocket需要什麼?
- 23. 什麼時候在Scala中需要@uncheckedVariance,爲什麼它在GenericTraversableTemplate中使用?
- 24. 爲什麼在使用ES6和ReactJS時需要使用綁定?
- 25. 爲什麼我在使用列表時需要使用'-P'?
- 26. 爲什麼nginx作爲前端和apache作爲後端
- 27. 爲什麼`pthread_mutex_trylock`存在時需要`pthread_mutex_lock`?
- 28. 爲什麼需要
- 29. 爲什麼需要「{} \」?
- 30. 爲什麼C#在類定義之後不需要分號?在C++中使用
即使使用sql後端,它也是從不「需要」的粗糙的(儘管如此,它往往是個好主意) –
@JoranBeasley如果希望數據庫後端由ORM生成而不是手動映射一切。但對於不使用ORM的人來說,當然,這不是絕對必要的。 (遺憾的是,我對[在Django中使用非ORM模型](http://zxq9.com/archives/616)...知道得太多了......) – zxq9