您应该在
create_all()调用之前放置模型类,如下所示:
from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATAbase_URI'] = 'postgresql+psycopg2://login:pass@localhost/flask_app'db = SQLAlchemy(app)class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(120), unique=True) def __init__(self, username, email): self.username = username self.email = email def __repr__(self): return '<User %r>' % self.usernamedb.create_all()db.session.commit()admin = User('admin', '[email protected]')guest = User('guest', '[email protected]')db.session.add(admin)db.session.add(guest)db.session.commit()users = User.query.all()print users
如果您的模型是在单独的模块中声明的,请在调用之前将其导入
create_all()。
说,
User模型在名为的文件中
models.py,
from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.config['SQLALCHEMY_DATAbase_URI'] = 'postgresql+psycopg2://login:pass@localhost/flask_app'db = SQLAlchemy(app)# See important note belowfrom models import Userdb.create_all()db.session.commit()admin = User('admin', '[email protected]')guest = User('guest', '[email protected]')db.session.add(admin)db.session.add(guest)db.session.commit()users = User.query.all()print users
重要说明: 在初始化
db对象之后导入模型很重要,因为在
models.py_中,您还需要
db从此模块导入对象。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)