如何使用 Flask 从 __init__.py 导入

Pav*_*dhu 6 python sqlalchemy flask

对于 Flask 应用程序,我有以下文件结构:

myapplication/
  run.py
  myapplication/
    __init__.py
    views/
      __init__.py
      models.py
      ...
    templates/
    static/
Run Code Online (Sandbox Code Playgroud)

我已经myapplication/__init__.py使用 SQLAlchemy初始化了数据库。我想导入数据库对象,models.py尽管我不确定如何做。

我阅读了这个答案并尝试myapplication/__init__.py使用这样的相对导入来导入数据库对象:

from ... import db
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:ValueError: Attempted relative import in non-package

那么如何获取myapplication/__init__.pyfor 中的数据库对象models.py呢?谢谢。

Mar*_*tin 7

添加一个名为__init__.py您的views文件夹的空文件。另外,我认为您的点太多了,即应该是from .. import db. 第一个.引用views和第二个.将引用您的__init__.py.

编辑:我看了一下我自己做的烧瓶东西(freevle),似乎我从未使用过相对导入来获取数据库。__init__.py相反,我使用了应用程序名称,即顶部所在文件夹的名称。在 freevle 中,我使用了from freevle import db. 这对你有用吗?