我正在编写python helper包以在我的django项目中运行,但我想在其他常规python代码中使用它(例如在django之外)。
问题是我想从django conf.settings或其他模块中获取设置,如果它在django之外。例如。类似的东西:
try:
from django.conf import settings
except ImportError:
import my_settings as settings
value = settings.SOME_SETTINGS
问题是django.conf导入没有失败,因为安装了django。那么问题是检查我是否在django内部的标准方法是什么?
感谢。
答案 0 :(得分:3)
您可以将路径附加到Django应用程序,然后导入应用程序的设置并像在Django应用程序中一样使用它:
import sys, os
sys.path.append('/path/to/your/django/app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from django.conf import settings
只要您正确设置,您也可以放弃sys.path.append
!
在Django内部,您可以检查DJANGO_SETTINGS_MODULE
是否在os.environ
中,然后加载它:
# If we are outside a Django app append the app path
# to the python path to import the setting
if 'DJANGO_SETTINGS_MODULE' not in os.environ:
sys.path.append('/path/to/your/django/app')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
# This way the setting will be imported in both cases
from django.conf import settings