0

私は django アプリを python パッケージとして作成しています。django-tinymce とほとんど同じです。django-tinymce の
興味深い点は、Web サーバーを再起動するたびに次のように実行することです。

python manage.py runserver

どういうわけか自動的に django-tinymce 内のsettings.pyファイルが実行を開始します。
これはどのように可能ですか?
INSTALLED_APPS に tinymce を追加するだけで、内部のコードpython2.7/site-packages/tinymce/settings.pyが実行を開始し、Web サーバーを再起動するか、manage.py コマンドを実行するたびにいくつかの初期化操作を実行します。

4

2 に答える 2

0

このような初期化コードは、多くの場合、起動時または再起動時に Django によって実行される models.py に配置されます。このサンプル アプリでは、インポートの実行だけが問題です。models.py はウィジェットをインポートし、ウィジェットは設定をインポートします。

于 2015-06-05T19:02:36.880 に答える
0

django 1.7 では、各アプリに必要な初期化を行うための app.py ファイルを含めることができます。profile というアプリがあるとします。アプリ ディレクトリに、次のような 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

この動作を完了するためのもう 1 つの手順は、アプリのinit .py でdefault_app_config Which should occur を指定することです。

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

この動作は、プロジェクト設定の変更、シグナル ハンドラの登録など、多くのユースケースで使用できます。

詳細については、Django 1.7 リリース ノートおよびDjango docs:Applicationsを参照してください。

于 2015-06-10T15:15:05.400 に答える