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”