12

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

我想做什么?

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

这显然行不通,但我希望你能得到我想要做的事情,如果没有,请发表评论,我将编辑问题以包含更多信息。

4

2 回答 2

13

如果您使用的是 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实际上是一个模块。

于 2015-09-12T10:06:30.617 回答
8

您可以使用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.

于 2011-08-19T13:07:10.407 回答