Python 用于多模块的django结构

Python 用于多模块的django结构,python,django,module,tablename,Python,Django,Module,Tablename,我对django和python也很陌生。我想尝试一个用django编写的项目 假设该项目有3个模块 使用者 积垢 忘记密码 登录 预订 积垢 搜寻 默认值(基本上是供web用户查看) 主页 关于我们 对于同一个实体,所有这些都有不同的业务逻辑 我应该为此创建3个应用程序吗?如果有3个不同的应用程序,那么表名将完全不同,因为它将自动为表名添加前缀 有什么建议吗?我对Django和Python也比较陌生。在实践中,试着让你的Django应用程序做一件事并且做得很好。如果你发现一个应用程序

我对django和python也很陌生。我想尝试一个用django编写的项目

假设该项目有3个模块

  • 使用者
    • 积垢
    • 忘记密码
    • 登录
  • 预订
    • 积垢
    • 搜寻
  • 默认值(基本上是供web用户查看)
    • 主页
    • 关于我们
  • 对于同一个实体,所有这些都有不同的业务逻辑

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


    有什么建议吗?

    我对Django和Python也比较陌生。在实践中,试着让你的Django应用程序做一件事并且做得很好。如果你发现一个应用程序变得越来越复杂,那么将其拆分为多个应用程序可能是值得的

    我不担心DB表名,因为Django为您处理DB交互。如果你能很好地命名你的应用和模型,你的代码应该是相当自我记录的

    我最近从电子书中学到了很多关于如何设置和布局Django项目的“最佳实践”。我与他们没有任何关系,但我从中学到了很多

    另外,如果你还没有完成,一定要完成


    希望这有帮助

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

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


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

    我同意@aya answer的说法,并且我也支持你的多模块结构。在我的项目中,我创建了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
    
    还有更多的应用程序


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

    将重点放在使您的应用程序可重用上。这样,您将在下一个项目中节省大量时间。关于它的好文章可以在网站上找到

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


    当你考虑项目组织时,也不要考虑“我的表是如何命名的”。表格可以很容易地重命名,而糟糕的设计会给项目带来麻烦。

    最近在Netuts上发布了另一篇教程,感谢您的评论。我已经看过了一些官方教程,但它只显示了基本的东西。这就是为什么我在这里发布一个问题。我还为开发、本地、heroku、生产等创建了不同的设置。那么模型类呢?假设我想在两个模块中使用的用户模型是两个单独的文件还是一个全局文件?@JsLim我的应用程序有不同的模型类、表单类等等。若我在不同的模块中调用model,我只是导入它,或者像以前一样,因为我在键入时很懒,所以我使用get_model来调用不同模块中的所有model_类。但现在我更喜欢导入它,有一个干净的和安排代码。也可以使用相对导入来减少导入行。我也继承遗产,所以我不能违背干燥的原则。有很多方法可以减少代码的使用。谢谢你的评论,我会试试看