Well, I have a Flask, SQL-Alchemy project. So far, this is my structure:
app
  |__ module1
  |    |__ models.py
  |    |__ views.py
  |__ module2
  |    |__ models.py
  |    |__ views.py
  |__ app.py
  |__ config.py
On every models.py, I have this:
from app import db
#classes
On every views.py, I have this:
from module1.models import *
from module2.models import *
from app import app
from flask import session, request, render_template, url_for, redirect
import datetime
#views
This is my app.py file:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import os
app = Flask(__name__)
db = SQLAlchemy(app)
from module1.views import *
from module2.views import *
import config
def init():
    port = int(os.environ.get('PORT', 5000))
    app.run(host='0.0.0.0', port=port, debug=True)
if __name__ == "__main__":
    init()
When I'm on module1.views, and call a model from module2.models, works perfect. But when calling a model from module1.models on module1.views, I get a NameError:
module1.models, module1.views --> Works
module1.models, module2.views --> Works
module2.models, module1.views --> Name Error
module2.models, module2.views --> Works
Also, the import goes well, no error on that. When I call the class, it fails. I think it's some problem with the imports statements, but I don't know how to fix it. Any ideas?
Thank you guys, in advance
 
    