flask и контекст приложения

gae

Новичок
Пользователь
Июл 2, 2020
3
0
1
Я пишу небольшой интернет магазин. Мне нужно при выстановление пароля и регистрации отправлять почту.
Отправлять просто письмо я могу, но мне надо отправлять в параллельном потоке.
Я делаю такою функцию в views.py

from threading import Thread

from app import app
def send_mail(subject, recipience, html):
with app.app_context():
mail_thread = Thread(target=mail.send, args=(Message(subject, recipience, html=html),))
mail_thread.start()
mail_thread.join()


и даже при таком коде мне вылезает ошибка:
RuntimeError: Working outside of application context.
 

gae

Новичок
Пользователь
Июл 2, 2020
3
0
1
извините надо было так:

def send_mail(subject, recipience,html):
with app.app_context():
mail.send(Message(recipience,html)

def send_mail_async(subject,recipience,html):
mail_thread = Thread(target=send_mail,args=(subject,recipience,html))
mail_thread.start()
thread.join()





p.s. Извините за ошибки.
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Вот тут есть пример асинхронной отправки письма: ссылка.
 
  • Мне нравится
Реакции: Student и gae

Форум IT Специалистов