+-- myproject
   ¦
   +-- api
   ¦   +-- tests
   ¦   +-- app
   ¦   +-- blueprint_1
   ¦   +-- blueprint_2
   ¦
   +-- data_collector
       +-- tests
       +-- app
       +-- scraper

我使用Flask和flask-sqlalchemy的json api项目结构如上 . 我计划设置的data_collector应用程序每小时自动运行一次,以抓取网页上发布的最新每小时数据,然后用这些数据填充数据库 . 我想根据蓝图中指定的查询使用api app来返回json .

到目前为止,我已经能够使用data_collector应用程序填充sqlite数据库,但我只能从这个应用程序中查询数据库,而不是api应用程序 . 我一直在阅读flask-sqlalchemy docs并在其他地方读书 . 首先,我是否有更好的方法来构建我的项目?

我的data_collector应用程序实例化数据库,如下所示:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)

我无法从此文件外部访问db或app对象 . 所以我不能把我的模型放在一个单独的文件中,因为我的模型有db.Models作为基类 . 从文档中我认为我需要具备以下内容而不是上述内容:

db = SQLAlchemy()

def create_app():
    app = Flask(__name__)
    db.init_app(app)
    return app

我在我的两个应用程序中尝试了这个,但仍然得到相同的错误:“无法从应用程序导入应用程序”或“无法从应用程序导入数据库” . 我不确定api目录中的应用程序是否需要访问data_collector中的应用程序,因为它是独立的,但我仍然无法访问我创建的sqlite数据库 . 如何从一个单独的应用程序访问使用data_collector创建的database.db文件(我尽可能地在文档和互联网上的其他地方关注信息)?