Séparer les modèles SQLAlchemy par fichier dans Flask [dupliquer]
Cette question a déjà une réponse ici:
- Flask-SQLAlchemy import/problème de contexte 2 réponses
De nombreux exemples d'applications Flask que j'ai vus ont les modèles stockés directement dans le fichier principal de l'application ( http://pythonhosted.org/Flask-SQLAlchemy/quickstart.html , http://maximebf.com/blog/2012/10/building-websites-in-python-with-flask/). Autres (http://flask.pocoo.org/docs/patterns/sqlalchemy/) ont un "models.py" fichier dans lequel les modèles sont placés.
Comment puis-je faire importer des modèles de mon application Flask à partir de fichiers séparés, par exemple? "User.py"? quand j'essaie de créer un User.py fichier avec ces contenus:
from app import db
class User(db.Model):
[...]
Je reçois l'erreur suivante:
File "/Users/stackoverflow/myapp/models/User.py", line 1, in <module>
from app import db
ImportError: No module named app
Lorsque j'insère from models import User
dans mon fichier de module.
2 réponses
Cette réponse était extrêmement utile: https://stackoverflow.com/a/9695045/353878 .
J'avais besoin de ne pas initialiser la base de données tout de suite.
from app.database import Base
class User(Base):
__tablename__ = 'users'
Ça devrait être comme ça ??