应用程序是一个支持的Web应用程序 某事 - 例如,博客系统,等等 公共记录数据库还是简单的 民意调查应用一个项目是一个集合 配置和应用程序 特定的网站。一个项目可以 包含多个应用。一个应用程序可以 在多个项目中。
然而,什么是“app”的其他例子?
答案 0 :(得分:14)
什么使应用程序(对我们而言)是一回事:
应用程序是重用的单位
如果我们想将其拆分用于其他地方,那么它就是一个应用程序。
如果它有可重用的数据模型,那就是一个应用程序。用户个人资料:App。客户:App。客户统计历史(如果不提供太多细节,很难解释):App。报告:App。精算分析:App。用于数据收集的供应商API:App。
如果它是唯一的并且永远不会被重复使用(即特定于客户),那么它就是一个依赖于其他应用程序的应用程序。数据加载是客户特定的。每个应用程序都建立在现有的一对应用程序(批量上传和统计历史记录)
之上答案 1 :(得分:5)
Django应用程序是可重用功能的捆绑包。在开始时,很容易为您的项目使用一个自定义应用程序,但“Django方式”是将其分解为单独的应用程序,每个应用程序只做一件事。您可以查看django.contrib,了解真正精心制作的可重用应用程序的示例。
我最近的一个例子:客户需要一种方法将CSV数据导入Django模型。最简单的方法是添加一个带有FileField的模型,并为他们上传的内容的特定格式编写一个快速解析器。这样可以正常工作,直到格式改变,我必须让解析器匹配。但这是一个常见的重复任务(导入数据),与现有应用程序(管理数据)无关,因此我自行将其分解。这个可插拔的应用程序可以导入任何活动模型的数据。现在,下次客户端需要导入功能时,我只需将此代码添加到installed_apps并运行syncdb。
这是一个判断调用何时打开一个应用程序,但我的经验法则是,如果我可能再做一些事情,我将花费额外的时间使它成为一个通用的应用程序。这意味着我已经创建了一些小应用程序(有些只包含一个模板标签),但是对于未来的收益来说,它的开销很小。
答案 2 :(得分:2)
如果您不打算使用Django的内置用户框架,用户管理很可能是一个应用程序。
它具有存储数据的用户界面和定义模型,它实际上与博客或Wiki应用程序分开(尽管信息将被共享)。
只要两个应用程序都在同一个“项目”中,就应该对数据库使用相同的设置。您应该能够确保在您尝试使用它们的地方导入正确的模型。
有关详情,请参阅this link。