AttributeError:尝试在 Flask 中发送邮件时,“NoneType”对象没有属性“app”[重复]

Posted

技术标签:

【中文标题】AttributeError:尝试在 Flask 中发送邮件时,“NoneType”对象没有属性“app”[重复]【英文标题】:AttributeError: 'NoneType' object has no attribute 'app' when trying to send mail in Flask [duplicate] 【发布时间】:2015-07-01 08:20:19 【问题描述】:

我正在按照烧瓶教程练习烧瓶邮件,但我遇到了一些似乎是错误的东西。我不明白发生了什么?

这是我的代码:

def send_email(to, subject, template, **kwargs):
    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)
    mail.send(msg)

这是错误信息:

Traceback (most recent call last):
  File "ch6_1.py", line 64, in <module>
    send_email(app ,MAIL_USERNAME, "test mail", "hello")
  File "ch6_1.py", line 50, in send_email
    msg.body = render_template(template + '.txt', **kwargs)
  File "D:\INSTALL\Python\lib\site-packages\flask\templating.py", line 126, in r
ender_template
    ctx.app.update_template_context(context)
AttributeError: 'NoneType' object has no attribute 'app'

【问题讨论】:

虽然我可以看到根本原因是相同的 - 这不是很明显这是一个重复(鉴于错误消息完全不同)。也许-应该将其编辑为答案... 【参考方案1】:

当我调用with app.app_context(): 时,我已经解决了我的问题。

def send_email(to, subject, template, **kwargs):
    msg = Message(app.config['FLASKY_MAIL_SUBJECT_PREFIX'] + subject,
                  sender=app.config['FLASKY_MAIL_SENDER'], recipients=[to])
    with app.app_context():
        msg.body = render_template(template + '.txt', **kwargs)
        msg.html = render_template(template + '.html', **kwargs)
        mail.send(msg)

【讨论】:

***.com/a/21369001/5393621

以上是关于AttributeError:尝试在 Flask 中发送邮件时,“NoneType”对象没有属性“app”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用Flask创建注册表单 - AttributeError:'ValueError'对象没有属性'name'

flask wtforms sqlalchemy AttributeError:“str”对象没有属性“_sa_instance_state”

AttributeError:使用flask-sqlalchemy连接到sqlite数据库时无法设置属性

Flask-login AttributeError:“用户”对象没有属性“is_active”

Flask peewee AttributeError:“ModelSelect”对象没有属性“_meta”

Flask Restless AttributeError:“NoneType”对象没有属性“_sa_instance_state”