从一个单独的flask应用程序访问用flasksqlalchemy创建的数据库

2021-05-13 14:22:48 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

我的data\u collector应用程序将数据库实例化如下:

^{pr2}$

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

db = SQLAlchemy()

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

我在我的两个应用中都尝试过这个,但仍然得到相同的错误:“Cannot import app from app”或“Cannot import db from app”。我不确定我在api目录中的应用程序是否需要从data_collector访问app,因为它是独立的,但是我仍然无法访问我创建的sqlite数据库。如何访问数据库.db从一个单独的应用程序中使用data_collector创建的文件(我已经尽力跟踪文档和internet上其他地方的信息)?在