【问题标题】:What is an "app" in Django?Django 中的“应用程序”是什么?
【发布时间】:2009-10-13 23:09:56
【问题描述】:

根据the documentation

应用程序是一个 Web 应用程序 某物——例如,一个网络日志系统,一个 公共记录数据库或简单的 投票应用。一个项目是一个集合 配置和应用程序 特定的网站。一个项目可以 包含多个应用程序。一个应用程序可以是 在多个项目中。

但是,还有哪些其他示例可以说明什么是“应用程序”?

【问题讨论】:

    标签: python django


    【解决方案1】:

    (对我们而言)应用是什么:

    应用是重用单位

    如果我们可能想将其拆分以在其他地方使用,它就是一个应用程序。

    如果它有一个可重用的数据模型,它就是一个应用程序。用户配置文件:应用程序。客户:应用程序。客户统计历史(如果不提供太多细节就很难解释):App。报告:应用程序。精算分析:应用程序。用于数据收集的供应商 API:应用程序。

    如果它是独一无二的并且永远不会被重复使用(即特定于客户),那么它就是一个依赖于其他应用的应用。数据加载是客户特定的。每个都是基于现有应用对(批量上传和统计历史)的应用

    【讨论】:

    • 这是有道理的,并且证实了我的想法。谢谢。
    【解决方案2】:

    Django 应用程序是可重用功能的捆绑包。刚开始时很容易为您的项目使用一个自定义应用程序,但“Django 方式”是将其分解为单独的应用程序,每个应用程序只做一件事。您可以查看 django.contrib,了解制作精良的可重用应用示例。

    我最近的一个例子:客户需要一种将 CSV 数据导入 Django 模型的方法。最简单的方法是添加一个带有 FileField 的模型,然后为他们上传的特定格式编写一个快速解析器。直到格式改变并且我不得不让解析器匹配之前,这会很好。但这是一个经常重复的任务(导入数据)并且与现有应用程序(管理该数据)无关,所以我自己打破了它。这个可插拔的应用程序可以为任何活动模型导入数据。现在下次客户端需要导入功能时,我只需将此代码添加到 installed_apps 并运行 syncdb。

    何时将应用程序单独拆分是一个判断电话,但我的经验法则是,如果我可能再次做某事,我会花额外的时间使其成为通用应用程序。这意味着我已经创建了一些小型应用程序(有些只包含一个模板标签),但这对于未来的收益来说几乎没有开销。

    【讨论】:

      【解决方案3】:

      如果您不打算使用 Django 的内置用户框架,用户管理很可能是一个应用程序。

      它具有用于存储数据的用户界面和定义的模型,并且它确实独立于博客或 Wiki 应用程序(尽管信息将被共享)。

      只要两个应用程序都在同一个“项目”中,它们就应该对数据库使用相同的设置。您应该能够通过确保在您尝试使用它们的地方导入正确的模型来实现。

      请参阅this link 了解更多信息。

      【讨论】:

      • 好的。用户是一个糟糕的选择,我猜。但是您可以在应用之间共享数据吗?
      • 是的,你应该可以。编辑帖子以提供更多信息。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多