多个python文件中的相对导入

时间:2012-05-08 19:43:34

标签: python django

我有以下目录结构:

目录名称为test_app

|-- __init__.py
|-- manage.py
|-- models.py
|-- views.py

我有一个非常基本的问题要问,我将以下值放在__init__.py

alpha = "123"
beta = "546"

如何在模型,视图和管理中获得alpha和beta的价值? 我尝试了以下方法:

from . import alpha

from test_app import alpha

他们两个都不起作用,我该怎么做?

2 个答案:

答案 0 :(得分:4)

__init__.py通常为空,表示可以导入目录中的文件,在本例中为test_app。您可以将值放在另一个.py文件中(例如:constants.py)并执行以下操作:

|-- __init__.py
|-- manage.py
|-- models.py
|-- views.py
|-- constants.py

然后导入常量:

from test_app import constants

constants.py的内容是

alpha = "123"
beta = "546"

然后你就可以使用你在常量中存储的值

print(constants.alpha)
print(constants.beta)

答案 1 :(得分:0)

我不确定我会在__init__.py中添加常量或我需要包含的内容,但是这样:

from __init__ import things

可以正常导入things中定义的__init__.py

我不这样做的原因是python包通常使用__init__.py来控制通过from package.name import *导出的内容。在这种情况下,你的常量也会被导出 - 如果这是什么就没问题你想要,但如果没有,那就太糟糕了。