如何解决Django-从变量导入常量的变量
我有一个Django应用程序,我想通过将myapp和MYCONSTANT存储在变量中的方式从myapp.constants导入MYCONSTANT变量:
VAR1='myapp'
VAR2='MYCONSTANT'
,我想使用变量导入它。
from VAR1.constants import VAR2
,但当然不起作用。
我该如何实现?有没有使用apps.get_model()的类似方法?
我需要使用VAR1和VAR2变量,因为它们对我来说是未知的,它们来自其他地方。假设它们是函数的参数。我可能可以用exec解决它,但我真的很想避免使用exec。
解决方法
它可以解决您的问题吗?
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)
,
您可以使用想要的名称(例如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
]
在constants.py
模块中创建一个新的APP_NAME
文件。将您 constants 放置在constants.py中:
VAR1='myapp'
VAR2='MYCONSTANT'
现在,您可以通过导入以下内容来访问VAR2
:
from APP_NAME.constants import VAR2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。