我有一个 django 应用程序,带有一个名为“app”
的模块
现在这个模块有一个名为“urls.py”的文件,其中有一个名为“HOME_URL ”的变量
我想做什么?
app_label = "app"
url = __import__(app_label).urls.HOME_URL
print url
这显然行不通,但我希望你能得到我想要做的事情,如果没有,请发表评论,我将编辑问题以包含更多信息。
我有一个 django 应用程序,带有一个名为“app”
的模块
现在这个模块有一个名为“urls.py”的文件,其中有一个名为“HOME_URL ”的变量
我想做什么?
app_label = "app"
url = __import__(app_label).urls.HOME_URL
print url
这显然行不通,但我希望你能得到我想要做的事情,如果没有,请发表评论,我将编辑问题以包含更多信息。
如果您使用的是 Django 1.7+,则应import_string
改为使用。
from django.utils.module_loading import import_string
app_label = "app"
url = import_string("%s.urls.HOME_URL" % app_label)
顺便说一下,关于 Python 模块和包的一些说明。
包是包含文件的文件夹,其中包括一个名为__init__.py
. 听起来您的“应用程序”“模块”实际上是一个包。
模块是包中的文件.py
。所以你urls.py
实际上是一个模块。
您可以使用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
.