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 应用作为 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'
此行为可用于许多用例,包括:更改项目设置、注册信号处理程序
中找到更多详细信息