在python项目中导入数据库的最佳方法

时间:2013-05-05 18:03:38

标签: python python-2.7

我正在开发一个连接到几个不同数据库的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,所以如果我完全沿着错误的路径走下去,我还没有开始编写应用程序。完全接受不同的结构建议。)

1 个答案:

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

或者您可以根据需要获取各个功能......但这应该可以让您入门。你几乎拥有它!