AttributeError: 'SQLAlchemy' object has no attribute 'Models'

Viewed 7029

AttributeError: sqlalchemy object has no attribute "Models" and some times ModuleNotFoundError: No module named 'models' error is occurring. I already installed all requirements like pip install sqlalchemy, flask-sqlalchemy, psycopy2-binary.

import os

from flask import Flask, render_template, request
from models import *

app = Flask(__name__)

app.config["SQLALchemy_DATABASE_URI"] = os.getenv("DATABASE_URL")
app.config["SQLALchemy_TRACK_MODIFICATIONS"] = False
db.init_app(app)

def main():
    db.create_all()

if __name__ == "__main__":
    with app.app_context():
        main()

Traceback (most recent call last): File "create.py", line 5, in from models import * AttributeError: sqlalchemy object has no attribute "Models"

2 Answers

Make shure in your models.py in your db object is

db = SQLAlchemy()

NOT db = SQLAlchemy , because SQLAlchemy is a class

If it doesn't work try the following.

db.init_app(app)

For example


#main.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'  # Database URL
db = SQLAlchemy(app)
db.init_app(app)
Related