我正在编写 python 帮助程序包以在我的 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 中的标准方法是什么?
谢谢。
请您参考如下方法:
您可以将路径附加到您的 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
