【问题标题】:What is the purpose of app.py in django apps?django 应用程序中 app.py 的目的是什么?
【发布时间】:2013-07-08 18:35:47
【问题描述】:

在 Django 1.4 及更高版本中:

在每个 django 应用程序中都有一个名为 app.py 的新文件。它定义了应用程序的范围以及加载时所需的一些首字母。

他们为什么不使用__init__.py 来达到目的?比__init__.py 方法有什么优势吗?你能链接到一些官方文档吗?

【问题讨论】:

  • startprojectstartapp 不要创建 app.py。你在哪里看到的?
  • Django-oscar 框架
  • https://github.com/tangentlabs/django-oscar/tree/master/oscar
  • 你是从某处引用There is a new file called app.py in every django application. It defines the scope of the app and some initials required when loaded. 吗?
  • 我的错..我做了django 1.3,当我看到oscar时,我认为它一定是用1.4介绍的

标签: python django web


【解决方案1】:

即使细节有误(新的 Django 项目中没有 app.py),问题仍然有效。

__init__.py 在导入子模块时被隐式导入。因此,如果 __init__.py 中的某些内容自动执行并产生副作用,您可能会遇到意想不到的后果。在 app.py 中执行所有操作会导致导入时间更长,但会将包初始化与应用程序初始化逻辑分开。

【讨论】:

    【解决方案2】:

    正如您提供的所有链接都清楚地表明,这与 Django 本身无关,而是第三方应用程序 django-oscar 应用的约定。

    【讨论】:

    • 太棒了!只是想知道我是否遗漏了什么。虽然,即使我完全错了,我也会接受“不”作为答案。不知道为什么 stackoverflow 社区对真正的困惑投反对票。谢谢!
    【解决方案3】:

    有时,当人们学习一项新技术时,他们会复制他们在教程中看到的文件名。有些人甚至出于习惯,出于认为这是他们需要做的事情,或者只是喜欢它而继续使用它们。这可能就是您经常看到 app.py 的原因。

    这是一个此类教程的示例https://realpython.com/blog/python/flask-by-example-part-1-project-setup/

    他们正在构建“示例烧瓶”,说明会为您提供此命令

    touch app.py .gitignore README.md requirements.txt
    

    所以现在你当然有了那个文件。对于可能列出 scripts.js 或使用 styles.css 的 css 教程的 javascript 项目也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多