2010-12-28 15 views
0

Djangoのデザインアイデアを借用するアプリケーションを構築しています。たとえば、プロジェクトごとのmanage.pyとsettings.pyを使用して、魔法を解読しようとしています。Djangoの設定Magic

私は私のDjangoの設定を参照したいとき、私は一般的にdjango.settingsからインポートします。明らかに、自分の設定はプロジェクト独自のモジュールにあります。これがどのように成し遂げられたのか?

答えて

2

環境変数DJANGO_SETTINGS_MODULEは設定モジュールを指します。

あなたは__import__機能を使用することができます。http://docs.python.org/library/functions.html#import

を見てみてください、あなたのメインのアプリモジュールがmyappにあると仮定すると:

myapp.settings = __import__(SETTINGS_MODULE_NAME, globals(), locals(), [], -1) 

これは確かにfrom module import *声明

+0

の動等価ですが、どんなメカニズムが実際にその変数の値をdjango.settingsにフックしますか?ソースは設定モジュールやパッケージを持っていないようですが、私はsettings.pyの内容が処理され、django.settings(疑似? )モジュール。 –

+0

私の編集例を参照してください –

+0

恐ろしい - 私はちょうどimportlibを見ていました。ありがとう! –