[Python] ModuleNotFoundError: no module named 'flask_sqlalchemy'

Discussão em 'Python' iniciado por Stack, Março 11, 2025.

  1. Stack

    Stack Membro Participativo

    I was following a Youtube flask tutorial, and I keep getting this module not found error. I have doouble checked the installation of sql alchemy, and it was done correctly. I am not sure why I am getting this error. Here is my code:

    from flask import Flask, redirect, url_for, render_template, request, session, flash
    from datetime import timedelta
    from flask_sqlalchemy import SQLAlchemy



    app = Flask(__name__)
    app.secret_key = "hello"
    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.sqlite3'
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    app.permanent_session_lifetime = timedelta(days=5)

    db = SQLAlchemy(app)

    class users(db.Model):
    _id = db.Column("id", db.Integer, primary_key=True)
    name = db.Column(db.String(100))
    email = db.Column(db.String(100))

    def __init__(self, name, email):
    self.name = name
    self.email = email


    @app.route("/")
    def home():
    return render_template("index.html")



    @app.route("/login", methods = ["POST", "GET"])
    def login():
    if request.method == "POST":
    session.permanent = True
    user = request.form["nm"]
    session["user"] = user

    found_user = users.query.filter_by(name=user).first()
    if found_user:
    session["email"] = found_user.email

    else:
    usr = users(user, "")
    db.session.add(usr)
    db.commit()

    flash("Login successful!")
    return redirect(url_for("user"))

    else:
    if "user" in session:
    flash("Already logged in!")
    return redirect(url_for("user"))
    return render_template("login.html")


    @app.route("/user", methods = ["POST", "GET"])
    def user():
    email = None
    if "user" in session:
    user = session["user"]

    if request.method == "POST":
    email = request.form["email"]
    session["email"] = email
    found_user = users.query.filter_by(name=user).first()
    found_user.email = email
    db.commit()
    flash("Email was saved.")
    else:
    if "email" in session:
    email = session["email"]

    return render_template("user.html", email = email)
    else:
    flash("You are not logged in.")
    return redirect(url_for("login"))


    @app.route("/logout")
    def logout():
    flash("You have been logged out", "info")
    session.pop("user", None)
    session.pop("email", None)
    return redirect(url_for("login"))


    if __name__ == "__main__":
    with app.app_context():
    db.create_all()
    app.run(debug=True)





    I have also double checked the python interpreter, and made sure it is the one with the virtual environment.

    Continue reading...

Compartilhe esta Página