ModuleNotFoundError: No module named 'flask_mail'
ModuleNotFoundError: No module named 'flask_mail'
我正在创建一个网络应用程序,用户在注册后会收到一封确认邮件。
但是我在命令行中遇到错误,Traceback(最近一次调用最后一次):
文件“/usr/local/lib/python3.9/site-packages/flask/cli.py”,第 240 行,在 locate_app 中
导入(module_name)
文件“/home/ubuntu/flask/registration/application.py”,第 3 行,位于
来自 flask_mail 导入邮件、消息
ModuleNotFoundError:没有名为 'flask_mail' 的模块并且网页上出现错误,Internal Server Error
服务器遇到内部错误,无法完成您的请求。要么是服务器过载,要么是应用程序出错。
application.py
import os
from flask import Flask, redirect, render_template, request
from flask_mail import Mail, Message
from cs50 import SQL
app = Flask(__name__)
app.config["MAIL_DEFAULT_SENDER"] = os.getenv("MAIL_DEFAULT_SENDER")
app.config["MAIL_PASSWORD"] = os.getenv("MAIL_PASSWORD")
app.config["MAIL_PORT"] = 587
app.config["MAIL_SERVER"] = smtp.gmail.com
app.config["MAIL_USE_TLS"] = True
app.config["MAIL_USERNAME"] = os.getenv("MAIL_USERNAME")
mail = Mail(app)
db = SQL("sqlite:///froshims.db")
REGISTRANTS = {}
SPORT=["Cricket", "Football", "Badminton", "Kho-Kho", "Kabaddi"]
@app.route("/", methods = ["GET", "POST"])
def index():
if request.method == "GET":
return render_template("index.html", sports = SPORT)
email = request.form.get("email")
sport = request.form.get("sport")
if not email:
return render_template("failure.html", message="E-mail not entered")
if not sport:
return render_template("failure.html", message="Sport not selected")
if sport not in SPORT:
return render_template("failure.html", message="Sport not in list. Don't try to hack our website.")
if request.method == "POST":
REGISTRANTS[name]=sport
print("yes")
db.execute("INSERT INTO registrants (name, sport) VALUES (?,?)", name, sport)
message = Message("You are registered!", recipients=[email])
mail.send(message)
return redirect("success")
@app.route("/success")
def success():
print("kaam kar na")
registrants = db.execute("SELECT * FROM registrants")
return render_template("success.html", registrants = registrants)
我无法弄清楚这个问题。我是 Flask 的新手。请指导我。
我在 flask_mail 导入时遇到了同样的问题。单独在代码编辑器上的虚拟环境中 pip 安装 Flask-Mail 可能不会导致模块导入错误。
转到您的命令行进入应用程序目录
另外,请确保您的 venv 环境中的 pip 版本是最新的。
pip install Flask-Mail
这对我有用。
我正在创建一个网络应用程序,用户在注册后会收到一封确认邮件。 但是我在命令行中遇到错误,Traceback(最近一次调用最后一次): 文件“/usr/local/lib/python3.9/site-packages/flask/cli.py”,第 240 行,在 locate_app 中 导入(module_name) 文件“/home/ubuntu/flask/registration/application.py”,第 3 行,位于 来自 flask_mail 导入邮件、消息 ModuleNotFoundError:没有名为 'flask_mail' 的模块并且网页上出现错误,Internal Server Error 服务器遇到内部错误,无法完成您的请求。要么是服务器过载,要么是应用程序出错。
application.py
import os
from flask import Flask, redirect, render_template, request
from flask_mail import Mail, Message
from cs50 import SQL
app = Flask(__name__)
app.config["MAIL_DEFAULT_SENDER"] = os.getenv("MAIL_DEFAULT_SENDER")
app.config["MAIL_PASSWORD"] = os.getenv("MAIL_PASSWORD")
app.config["MAIL_PORT"] = 587
app.config["MAIL_SERVER"] = smtp.gmail.com
app.config["MAIL_USE_TLS"] = True
app.config["MAIL_USERNAME"] = os.getenv("MAIL_USERNAME")
mail = Mail(app)
db = SQL("sqlite:///froshims.db")
REGISTRANTS = {}
SPORT=["Cricket", "Football", "Badminton", "Kho-Kho", "Kabaddi"]
@app.route("/", methods = ["GET", "POST"])
def index():
if request.method == "GET":
return render_template("index.html", sports = SPORT)
email = request.form.get("email")
sport = request.form.get("sport")
if not email:
return render_template("failure.html", message="E-mail not entered")
if not sport:
return render_template("failure.html", message="Sport not selected")
if sport not in SPORT:
return render_template("failure.html", message="Sport not in list. Don't try to hack our website.")
if request.method == "POST":
REGISTRANTS[name]=sport
print("yes")
db.execute("INSERT INTO registrants (name, sport) VALUES (?,?)", name, sport)
message = Message("You are registered!", recipients=[email])
mail.send(message)
return redirect("success")
@app.route("/success")
def success():
print("kaam kar na")
registrants = db.execute("SELECT * FROM registrants")
return render_template("success.html", registrants = registrants)
我无法弄清楚这个问题。我是 Flask 的新手。请指导我。
我在 flask_mail 导入时遇到了同样的问题。单独在代码编辑器上的虚拟环境中 pip 安装 Flask-Mail 可能不会导致模块导入错误。 转到您的命令行进入应用程序目录 另外,请确保您的 venv 环境中的 pip 版本是最新的。
pip install Flask-Mail
这对我有用。