如何使用字符串[django]访问python模块变量

时间:2011-08-19 13:02:28

标签: python django python-module

我有一个django应用程序,其中包含一个名为“app”的模块 现在这个模块有一个名为“urls.py”的文件,它有一个名为“HOME_URL ”的变量

我想做什么?

app_label = "app"
url = __import__(app_label).urls.HOME_URL
print url

这显然不起作用,但我希望你得到我想要做的事情,如果没有请注释我会编辑问题以包含更多信息。

2 个答案:

答案 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