I have the following files inside a package called users:
file __init__.py:
from flask_sqlalchemy import SQLAlchemy
from .views import UserDetails, UserList
db = SQLAlchemy()
file models.py:
from users import db
class User(db.Model):
pass
and file views.py:
from .models import User
from users import db
#code
But the following Import exception had occurred:
Error: While importing "users", an ImportError was raised:
Traceback (most recent call last):
File "/var/www/microservices/venv/lib/python3.6/site-packages/flask/cli.py", line 240, in locate_app
__import__(module_name)
File "/var/www/microservices/Flask_Microservices/users/__init__.py", line 9, in <module>
from .views import UserDetails, UserList
File "/var/www/microservices/Flask_Microservices/users/views.py", line 5, in <module>
from .models import User
File "/var/www/microservices/Flask_Microservices/users/models.py", line 2, in <module>
from users import db
ImportError: cannot import name 'db'
Any idea about what is wrong in my imports?
asked Aug 1, 2019 at 9:22
adnanmuttaleb
3,6641 gold badge34 silver badges52 bronze badges
-
thank you, no unfortunately, views also use db. @00adnanmuttaleb– adnanmuttaleb2019年08月01日 09:33:28 +00:00Commented Aug 1, 2019 at 9:33
1 Answer 1
Wild guess. Try to move
from .views import UserDetails, UserList
under db = SQLAlchemy() so it looks like
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
from .views import UserDetails, UserList
when you execute import from views it tries to import db from init.py in views.py file. It is not present yet so error occurs. At least I think so.
Sign up to request clarification or add additional context in comments.
Comments
lang-py