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