【问题标题】:Django site architectureDjango 站点架构
【发布时间】:2017-01-03 15:28:03
【问题描述】:

当您忙于开发应用程序时,有时很容易忘乎所以地编写许多模型,有些相关。然后,问题是如何在给定所有模型的情况下布局网站。假设您有以下模型:

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

或者:

Site
|
Solo_Project
|
----------------
|    |    |    |
AP1  AP2  AP3  AP4
|    ...
---------------------
|    |    |    |    |
M1   M2   M3   M4   M5

如果是前者,那么应该如何使用元 settings.py 来指定 ROOT_URLCONF 和 settings.py 通常负责的所有其他设置(数据库路由等)

除了 Django 文档,我发现 Django tips: layout out an application 有用(但不足)的读数。

【问题讨论】:

  • 您的项目架构是一个让您的项目易于管理的工具。最有效的方法取决于项目和您/您的团队的工作流程和偏好。如果不详细了解您的项目和组织,几乎可以说这不是完全基于意见的。

标签: django django-apps


【解决方案1】:

它非常主观。

我认为我的规则是,如果它提供了一组可以独立于其他部分使用的功能,那么将其放入单独的应用程序中。

我以前的一个项目有一个大应用程序,(加上我作为单独应用程序添加的购物车类型功能)。我考虑过拆分主应用程序,但是很多查询和视图使用了所有表,所以最后我认为它作为一个大型应用程序更有意义,而不是将其拆分为多个应用程序,功能没有明显区别。

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 2012-05-06
    • 2011-06-24
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2017-10-24
    • 2017-06-17
    相关资源
    最近更新 更多