我有一个django应用程序,其中包含一个名为“app”的模块 现在这个模块有一个名为“urls.py”的文件,它有一个名为“HOME_URL ”的变量
我想做什么?
app_label = "app"
url = __import__(app_label).urls.HOME_URL
print url
这显然不起作用,但我希望你得到我想要做的事情,如果没有请注释我会编辑问题以包含更多信息。
答案 0 :(得分:9)
如果您使用的是Django 1.7+,则应使用import_string
代替。
import
顺便说一下,有关Python模块和软件包的一些说明。
包是一个包含文件的文件夹,包括一个名为from django.utils.module_loading import import_string
app_label = "app"
url = import_string("%s.urls.HOME_URL" % app_label)
的文件。听起来你的'app''模块'实际上是一个包。
模块是包中的__init__.py
文件。所以你的.py
实际上是一个模块。
答案 1 :(得分:6)
您可以使用import_module
加载相对于django项目根目录的模块。
from django.utils.importlib import import_module
app_label = "app"
url = import_module("%s.urls" % app_label).HOME_URL
这应该适用于您的django项目或./manage.py shell
。