0

In Django 1.4 and above :

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.

Why don't they use __init__.py for the purpose? Any advantage over __init__.py approach? Can you link to some official documentation for the same?

4

3 回答 3

3

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

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

于 2013-07-08T18:46:48.213 回答
2

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

于 2013-07-08T20:23:41.567 回答
1

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

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

他们在那里构建“示例烧瓶”,说明给你这个命令

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

所以当然现在你有了那个文件。这对于 javascript 项目来说是一样的,他们可能会列出使用styles.css的scripts.js或 css 教程。

于 2015-11-11T18:54:28.303 回答