Django - 从变量导入常量变量
Django - import constants's variable from variable
我有一个 Django 应用程序,我想以 myapp 和 MYCONSTANT 存储在变量中的方式从 myapp.constants 导入 MYCONSTANT 变量:
VAR1='myapp'
VAR2='MYCONSTANT'
并且我想使用变量导入它。
from VAR1.constants import VAR2
,当然不行。
我怎样才能做到这一点?有没有类似的方法来使用 apps.get_model() ?
我需要使用 VAR1 和 VAR2 变量,因为我不知道它们,它们来自其他地方。比方说,它们是函数的参数。我可能可以用 exec 解决它,但我真的想避免使用 exec。
您可以使用您想要的名称创建一个新应用,例如 APP_NAME:
$ python manage.py startapp APP_NAME
在设置中注册应用程序:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'APP_NAME', # Append to the bottom
]
在您的 APP_NAME
模块中创建一个新的 constants.py
文件。将你的 常量 放在 constants.py 中 Like:
VAR1='myapp'
VAR2='MYCONSTANT'
现在,您可以通过导入访问 VAR2
:
from APP_NAME.constants import VAR2
它能解决您的问题吗?
def get_constant_value(module_name, constant):
try:
module = importlib.import_module(f'{module_name}.constants')
except Exception as e:
raise e
return getattr(module, constant)
constant_value = get_constant_value(VAR1, VAR2)
我有一个 Django 应用程序,我想以 myapp 和 MYCONSTANT 存储在变量中的方式从 myapp.constants 导入 MYCONSTANT 变量:
VAR1='myapp'
VAR2='MYCONSTANT'
并且我想使用变量导入它。
from VAR1.constants import VAR2
,当然不行。
我怎样才能做到这一点?有没有类似的方法来使用 apps.get_model() ?
我需要使用 VAR1 和 VAR2 变量,因为我不知道它们,它们来自其他地方。比方说,它们是函数的参数。我可能可以用 exec 解决它,但我真的想避免使用 exec。
您可以使用您想要的名称创建一个新应用,例如 APP_NAME:
$ python manage.py startapp APP_NAME
在设置中注册应用程序:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'APP_NAME', # Append to the bottom
]
在您的 APP_NAME
模块中创建一个新的 constants.py
文件。将你的 常量 放在 constants.py 中 Like:
VAR1='myapp'
VAR2='MYCONSTANT'
现在,您可以通过导入访问 VAR2
:
from APP_NAME.constants import VAR2
它能解决您的问题吗?
def get_constant_value(module_name, constant):
try:
module = importlib.import_module(f'{module_name}.constants')
except Exception as e:
raise e
return getattr(module, constant)
constant_value = get_constant_value(VAR1, VAR2)