当您忙于开发应用程序时,有时很容易被带走并编写许多模型,有些相关。然后,问题是如何在给定所有模型的情况下布局网站。假设您有以下型号:
models: M1, M2, ..., M60
然后您意识到可以将它们划分为应用程序:
apps: AP1, AP2, ..., AP12
然后,过了一段时间,您可能会意识到您有不同的项目,不同的数据库,业务逻辑,目标受众等(例如,在一个站点下有住宿,滑雪,设备租赁,电子商务等的网站)
projects: P1, P2, P3
问题是,在一个项目或相关应用程序中,在单独的项目中使用语义不相关的应用程序是否更好?
Site
|
P1 - P2 - P3
| ...
----------------
| | | |
AP1 AP2 AP3 AP4
| ...
---------------------
| | | | |
M1 M2 M3 M4 M5
OR:
Site
|
Solo_Project
|
----------------
| | | |
AP1 AP2 AP3 AP4
| ...
---------------------
| | | | |
M1 M2 M3 M4 M5
如果是前者,那么应该如何使用meta settings.py指定ROOT_URLCONF以及settings.py通常需要处理的所有其他设置(数据库路由等)
除了Django文档,我发现Django tips: layout out an application有用(但不够)读数。
答案 0 :(得分:0)
非常主观。
我认为我的规则是,如果它提供了一组可以独立于其他部分使用的功能,那么将它放在一个单独的应用程序中。
我之前的一个项目有一个大应用程序(加上我作为单独的应用程序添加的购物车类型功能)。我考虑过拆分主应用程序,但是很多查询和视图都使用了所有表格,所以最后我认为它作为一个大型应用程序更有意义,而不是将其拆分为多个应用程序而没有明显的功能区别。