Flask-Mail Mail()实例化两次

问题描述 投票:0回答:1

我想了解这个教程code

from flask import Flask
from flask_mail import Mail, Message

app =Flask(__name__)
mail=Mail(app) # <-- This

app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = '[email protected]'
app.config['MAIL_PASSWORD'] = '*****'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app) # <-- This

@app.route("/")
def index():
   msg = Message('Hello', sender = '[email protected]', recipients = ['[email protected]'])
   msg.body = "Hello Flask message sent from Flask-Mail"
   mail.send(msg)
   return "Sent"

if __name__ == '__main__':
   app.run(debug = True)

在第5行和第13行,Mail对象被实例化并分配给邮件。即使我在第5行注释掉第一个实例,我仍然可以发送电子邮件,所以我可以说这只是一个错字,还是有必要的?

python email flask web-applications flask-mail
1个回答
1
投票

不需要第一个mail=Mail(app)Mail() constructor的主要功能是阅读应用程序配置。因此,由于在第5行之前没有设置适当的app配置变量,所以第一个Mail()对象可能甚至不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.