У меня проблемы с Flask контекстом приложения и Python импортом / экспортом.
У меня есть следующее задание, настроенное с помощью Flask -APScheduler, это работает как положено:
from flask import Flask
from flask_cors import CORS
from flask_apscheduler import APScheduler
import time
from src.server import api_bp
from src.database import db, ma
from src.models.subject import Subject
def send_notifications():
with app.app_context():
print(time.strftime("%A, %d.%B %Y %I:%M:%S %p"))
subjects = Subject.query.all()
print(subjects)
def create_app():
app = Flask(__name__)
app.config.from_object("config")
CORS(app)
db.init_app(app)
ma.init_app(app)
app.register_blueprint(api_bp, url_prefix='/api')
scheduler = APScheduler()
scheduler.init_app(app)
scheduler.add_job(id='1', func=send_notifications, trigger="interval", seconds=3)
scheduler.start()
return app
# If we're running in stand alone mode, run the application
if __name__ == '__main__':
app = create_app()
app.run(debug=True, host='0.0.0.0')
Однако, если я хочу разбить функцию send_notification
на ее собственную файл, я не уверен, как это сделать.
Я пробовал следующее:
import time
from ..models.subject import Subject
def send_notifications():
with app.app_context():
print(time.strftime("%A, %d.%B %Y %I:%M:%S %p"))
subjects = Subject.query.all()
print(subjects)
но я получаю эту ошибку:
'No application found. Either work inside a view function or push'
RuntimeError: No application found. Either work inside a view function or push an application context.
В идеале, моя структура папок должна выглядеть следующим образом:
- application.py (выше)
- / ср c
- -notify.py (с вышеуказанной функцией)
Однако я не могу получить контекст приложения Flask для распознавания, если только У меня есть функция в том же файле, что и инициализация приложения. Любая помощь?