微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

db.init_app 之前对象 SQLAlchemy 的 Flask 配置

如何解决db.init_app 之前对象 SQLAlchemy 的 Flask 配置

我想弄清楚如何使用 .apply(pd.Series) 为我的 Flask 服务器配置一个带有文件的调度程序。问题是用于配置服务器的调度程序文件正在调用 flask_sqlalchemy 对象,然后我才能将 db = sqlAlchemy() 绑定到 Flask 应用程序。这导致错误db.init_app(app)

下面是我的文件结构

RuntimeError: No application found. Either work inside a view function or push an application context.

这是my_project - app - __init__.py - app.py - build - __init__.py - model.py - jobstore_scheduler.py 内部的问题:

app/__init__.py

此时发生错误是因为在 from build import db from build.jobstore_scheduler import jobstore_scheduler from flask import Flask from flask_apscheduler import APScheduler jobstore_scheduler = jobstore_scheduler() scheduler = APScheduler() def create_app(): app = Flask(__name__) app.config['sqlALCHEMY_DATABASE_URI'] = <my_db_string> app.config.from_object(jobstore_scheduler) <----- ****** this is the problem ****** db.server = server db.init_app(server) scheduler.init_app(server) scheduler.start() return server 内部,我正在调用一个函数,该函数调用 jobstore_scheduler.py 以使用 ORM 模型从数据库中检索数据。

model.py

build/jobstore_scheduler.py

from build.model import model def get_data_from_db(): data = [value[0] for value in model.query.all()] return data class FlaskScheduler(): JOB = [ { 'func': my_func 'param': get_data_from_db() },]

build/model.py

from build import db Class model(db.Model): ... ...

build/__init__.py

我了解 from flask_sqlalchemy import sqlAlchemy db = sqlAlchemy() 中的 db 对象在我的 build/__init__.py 函数内的 app.config.from_object(jobstore_scheduler) 处出错,因为它在 create_app 可以绑定之前被实例化。

我已经浏览了文档和尽可能多的 stackoverflow 帖子,但此时,我不明白如何避免这个问题并通过各种文件编织 db.init_app(app) 对象。

所以我的问题是:如何从数据库中检索数据以传递给调度程序,然后调度程序在 db 绑定到 Flask 应用程序之前配置烧瓶应用程序?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。