Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python项目中导入数据库的最佳方法_Python_Python 2.7 - Fatal编程技术网

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

在python项目中导入数据库的最佳方法,python,python-2.7,Python,Python 2.7,我正在开发一个python应用程序,它可以连接到几个不同的数据库。我希望我的项目中的不同包能够使用数据库功能。如何创建一个可以使用的“全局”包,而不是在每个包中创建数据库逻辑?下面是我正在考虑使用的结构示例: main.py package1/ __init__.py stuff1.py stuff2.py package2/ __init__.py moar1.py moar2.py

我正在开发一个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,因此如果我完全走错了路,我还没有开始编写应用程序。完全接受不同的结构建议。)

要从同级目录导入,同级包需要是父包的一部分

将布局更改为:

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中,您可以像这样导入内容和呻吟:

from wholeproject.package1 import stuff1
from wholeproject.package2 import moar1
from wholeproject.database import dbfunctions
在stuff1中,您可以获得如下函数:

from wholeproject.package1 import stuff1
from wholeproject.package2 import moar1
from wholeproject.database import dbfunctions

或者您可以根据需要获取单个函数。。。但这应该让你开始。你差点就成功了

您是否尝试过上述解决方案,如果是,您到底有什么问题?对不起,我想我忘记问我的问题了。上面用黑体标出。测试一下,然后用一个具体的问题或问题汇报。我想是的。如何从同级目录导入数据库函数?啊,我不知道我必须为父目录创建一个包。。。非常感谢。