【问题标题】:Best way to import database in python project [duplicate]在python项目中导入数据库的最佳方法[重复]
【发布时间】:2013-04-29 12:59:48
【问题描述】:

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

【问题讨论】:

  • 您是否尝试过上述解决方案,如果是,您究竟遇到了什么问题?
  • 对不起,我想我忘了问我的问题。上面加粗。
  • 对其进行测试并用具体问题或问题报告。
  • 我想我做到了。如何从同级目录导入数据库函数?

标签: python python-2.7


【解决方案1】:

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

将布局更改为:

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 中,您可以像这样获得 dbfunctions:

from wholeproject.database import dbfunctions

或者您可以根据需要获取各个功能...但这应该可以帮助您入门。你差点就吃完了!

【讨论】:

  • 啊,我不知道我必须为父母创建一个包...谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 2011-01-14
  • 2015-02-04
  • 2023-03-03
  • 2010-11-03
相关资源
最近更新 更多