我也是django和python的新手。我想尝试用django编写的项目。
假设该项目有3个模块
所有这些都为同一个实体提供了不同的业务逻辑。
我应该为此创建3个应用程序吗?如果有3个不同的应用程序,那么表名都是不同的,因为它会自动为表名添加前缀。
有什么建议吗?
答案 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模块就可以了。
当您考虑项目组织时,也不要考虑“我的表将如何命名”。表格可以很容易地重命名,而糟糕的设计会让你在项目增长时遇到麻烦。