我正在开发一个连接到几个不同数据库的python应用程序。我希望我的项目中的不同包能够使用数据库功能。不是在每个包中创建数据库逻辑,我如何创建一个可以使用的“全局”包?以下是我正在考虑使用的结构示例:
main.py
package1/
__init__.py
stuff1.py
stuff2.py
package2/
__init__.py
moar1.py
moar2.py
database/
__init__.py
dbfunctions.py
我希望能够在stuff和moar文件中使用数据库函数,而无需从main.py调用它们。我希望能够在包中编写数据库逻辑,sql等,并根据main.py的调用独立运行它们。
问题:如何将数据库函数导入package1和package2?我想从兄弟目录中导入数据库项目。
(另外,我更熟悉使用PHP并开始使用python,所以如果我完全沿着错误的路径走下去,我还没有开始编写应用程序。完全接受不同的结构建议。)
答案 0 :(得分:0)
要从兄弟目录导入,兄弟包需要是父包的一部分。
将您的布局更改为:
wholeproject/
__init__.py
main.py
package1/
__init__.py
stuff1.py
stuff2.py
package2/
__init__.py
moar1.py
moar2.py
database/
__init__.py
dbfunctions.py
然后,在main.py中,你可以像这样导入东西和moar:
from wholeproject.package1 import stuff1
from wholeproject.package2 import moar1
并在stuff1中你可以得到这样的dbfunction:
from wholeproject.database import dbfunctions
或者您可以根据需要获取各个功能......但这应该可以让您入门。你几乎拥有它!