I have an Flask app that allows users to register using an online web form. In order to do that, after the form has been filled up the user will receive a confirmation email with a link to confirm, which will allow the app to set a authentication flags in a Mysql database. The app runs without any problem on localhost. On pythonanywhere, is it possible to fill up the form on line, but the confirmation email is never sent. The email.py is:
from threading import Thread
from flask import current_app, render_template
from flask.ext.mail import Message
from . import mail
def send_async_email(app, msg):
with app.app_context():
mail.send(msg)
def send_email(to, subject, template, **kwargs):
app = current_app._get_current_object()
msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX'] + ' ' + subject,
sender=app.config['FLASKY_MAIL_SENDER'], recipients=[to])
msg.body = render_template(template + '.txt', **kwargs)
msg.html = render_template(template + '.html', **kwargs)
thr = Thread(target=send_async_email, args=[app, msg])
thr.start()
return thr
When I try to run this file. The error that comes up is: ImportError:cannot import name 'current_app'. I looks that there is something wrong with flask ? Any idea ?