我对 django 和 python 也很陌生。我想尝试一个用 django 编写的项目。
假设项目有 3 个模块
- 用户
- CRUD
- 忘记密码
- 登录
- 预订
- CRUD
- 搜索
- 默认(基本上是供网络用户查看)
- 主页
- 关于我们
所有这些对于同一实体都有不同的业务逻辑。
我应该为此创建 3 个应用程序吗?如果 3 个不同的应用程序,那么表名都是不同的,因为它会自动为表名添加前缀。
有什么建议吗?
这个真的没有正确答案。一般来说,将任何编程任务分解为“模块”的方式在很大程度上取决于个人喜好。
我对这个主题的看法是从单个模块开始,只有在“必要”时才将其分解为更小的模块,例如当单个模块变得过大时。
对于应用程序,如果所有应用程序共享相同的数据库表,您可能会发现在单个应用程序中完成所有操作会更容易。我认为只有当您想在多个项目之间共享同一个应用程序时才真正需要使用多个 Django 应用程序。
我同意@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
.
我自己对 Django 和 Python 也比较陌生。在实践中,试着让你的 Django 应用程序做一件事并且把它做好。如果您发现应用程序变得越来越复杂,则可能值得将其拆分为多个应用程序。
我不会担心数据库表名,因为 Django 会为您处理数据库交互。如果你给你的应用程序和模型命名得当,你的代码应该是相当自我记录的。
我最近从电子书2 Scoops of Django中学到了很多关于如何设置和布局 Django 项目的“最佳实践” 。我与他们没有任何关系,但我从中学到了很多。
此外,如果您还没有,请务必阅读 Django 教程。
希望这有帮助!
专注于使您的应用程序可重用。这样,您将在下一个项目中节省大量时间。关于它的好文章可以在Django 的网站上找到。
如果您有紧密集成的模块或相互依赖,那么将它们放在单独的应用程序中并没有真正的好处,因为您永远不会单独使用它们。组织在单独的 Python 模块中就可以了。
在考虑项目组织时,也不要考虑“我的表将如何命名”。表格可以很容易地重命名,而糟糕的设计会给你带来麻烦,因为项目会增长。