多个模块的django结构

时间:2013-04-11 14:11:35

标签: python django module tablename

我也是django和python的新手。我想尝试用django编写的项目。

假设该项目有3个模块

  1. 用户
    • CRUD
    • 忘记密码
    • 登录
  2. 预订
    • CRUD
    • 搜索
  3. 默认(主要是供网络用户查看)
    • 首页
    • 关于我们
  4. 所有这些都为同一个实体提供了不同的业务逻辑。

    我应该为此创建3个应用程序吗?如果有3个不同的应用程序,那么表名都是不同的,因为它会自动为表名添加前缀。

    有什么建议吗?

4 个答案:

答案 0 :(得分:2)

对此真的没有正确答案。一般来说,将任何编程任务分解为“模块”的方式很大程度上取决于个人品味。

我对这个问题的看法是从单个模块开始,只有当它变得“必要”时才将它分解成更小的模块,例如:当单个模块变得过大时。

对于应用程序,如果所有应用程序共享相同的数据库表,您可能会发现在单个应用程序中执行所有操作更容易。我认为只有当你想在多个项目之间共享同一个应用程序时,才真正需要使用多个Django应用程序。

答案 1 :(得分:1)

我同意@aya的答案,我也支持你的多个模块的结构。在我的项目中,我创建了18个应用程序。每个应用程序执行不同的规则:

 1. accounts 
      - login
      - forgot password
      - register
      - profile
 2. common
      //in here all the common function use by different apps
 3. front
      - home
      - testimonial
 4. guides
      //tutorials

还有更多应用......

我以这种方式安排,以便于跟踪,调试和查找代码。如果您的问题是表格的名称,您可以设置class Meta of db_table

答案 2 :(得分:0)

我自己也是Django和Python的新手。在实践中,尝试让您的Django应用程序做一件事,做得好。如果您发现应用程序变得越来越复杂,那么将其分解为多个应用程序可能是值得的。

我不担心DB tablename,因为Django会为您处理数据库交互。如果您为应用程序和模型命名良好,那么您的代码应该是相当自我记录的。

我最近学到了很多关于如何从电子书2 Scoops of Django设置和布局Django项目的“最佳实践”。我不以任何方式与他们有任何联系,但他们从中学到了很多东西。

另外,如果您还没有,请务必浏览Django tutorial

希望这有帮助!

答案 3 :(得分:0)

专注于使您的应用可重复使用。这样,您将在下一个项目中节省大量时间。有关它的好文章可在Django's website获得。

如果你有紧密集成的模块或相互依赖,那么将它们放在不同的应用程序中并没有什么好处,因为你不会单独使用它们。组织单独的Python模块就可以了。

当您考虑项目组织时,也不要考虑“我的表将如何命名”。表格可以很容易地重命名,而糟糕的设计会让你在项目增长时遇到麻烦。