我想声明一个所有其他模式对象的基类 可以继承自,例如:
class Base(db.Model):
created_on = db.Column(db.DateTime, default=db.func.now())
updated_on = db.Column(db.DateTime, default=db.func.now(), onupdate=db.func.now())
然后所有其他模式对象都可以继承它而不必重复 两列的声明。
我该如何在 Flask-SQLAlchemy 中执行此操作?
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key = True)
email = db.Column(db.String(255), unique = True)
最佳答案
SQLAlchemy 提供 directive called __abstract__
。您可以使用它来告诉 SQLAlchemy 不要为特定模型创建表。该模型可以用作您的基类。
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class Base(db.Model):
__abstract__ = True
created_on = db.Column(db.DateTime, default=db.func.now())
updated_on = db.Column(db.DateTime, default=db.func.now(), onupdate=db.func.now())
class User(Base):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key = True)
email = db.Column(db.String(255), unique = True)
关于flask - 如何在 Flask-SQLAlchemy 中声明基本模型类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976445/