+-- 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文件(我尽可能地在文档和互联网上的其他地方关注信息)?