Я использую чертежи с фабрикой приложений, поэтому не могу импортировать экземпляр приложения.Ребята, вы видите, что что-то не так с настройкой app
в вашей конфигурации?
def create_app():
app = Flask(__name__)
app.config['app'] = app
with app.app_context():
configure_app(app)
configure_blueprints(app)
...
Теперь app
можно получить из другого модуля через current_app.config['app']
app = current_app.config['app']
with app.app_context():
...
Вот этов реальном примере:
from flask import current_app
def send_async_email(current_app, msg):
with current_app.app_context():
mail.send(msg)
def send_email(subject, sender, recipients, text_body, html_body):
msg = Message(subject, sender=sender, recipients=recipients)
msg.body = text_body
msg.html = html_body
Thread(target=send_async_email,
args=(current_app.config['app'], msg)).start()
Используя только current_app
в аргументах Thread
, я получаю сообщение об ошибке, говорящее, что я работаю вне контекста приложения.Использование current_app.config ['app'] работает, я просто хочу знать, есть ли другой способ или есть что-то не так с этим?