Django 可重用应用程序如何初始化自身?

how a django reusable apps can initialize itself?

我正在创建一个 django 应用作为 python 包,几乎类似于 django-tinymce
django-tinymce 的有趣之处在于每次我重新启动我的网络服务器时,例如我 运行 :

python manage.py runserver

django-tinymce 中的 settings.py 文件以某种方式自动启动 运行ning.
这怎么可能?
我只是在 INSTALLED_APPS 中添加了 tinymce,除了 python2.7/site-packages/tinymce/settings.py 中的代码之外没有其他任何东西启动 运行ning 并在每次我重新启动我的网络服务器或 运行 任何时候做一些初始化操作manage.py 命令。

这样的初始化代码经常被Django在启动或重启时放在models.py里面,也就是运行。 在此示例应用程序中,它只是导入 运行 - models.py 导入小部件和小部件导入设置的问题。

作为 django 1.7,每个应用程序都可以包含一个 app.py 文件来执行它需要执行的任何初始化。 假设我们有一个名为 profile.In 的应用程序,您的应用程序目录创建一个 apps.py,如下所示:

#apps.py 
from django.apps import AppConfig 
class ProfileConfig(AppConfig):
     name = "profiles"
     verbose_name = 'User Profiles'
     def ready(self):
         #do what ever you want

完成此行为的另一个步骤是指定 default_app_config 这应该发生在你的应用程序的 init.py 中:

# profile/__init__.py
default_app_config = 'profile.apps.ProfileConfig'

此行为可用于许多用例,包括:更改项目设置、注册信号处理程序

可以在Django 1.7 release notes and Django docs:Applications

中找到更多详细信息