flask - 如何在 Flask-SQLAlchemy 中声明基本模型类?

标签 flask sqlalchemy flask-sqlalchemy

我想声明一个所有其他模式对象的基类 可以继承自,例如:

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/

相关文章:

flask 和 sqlalchemy : handling sessions

python - 在 SqlAlchemy 中将子类添加到 session 时发生外键冲突

python - SQLAlchemy:从初始值设定项中获取值

python - 使用 Flask-SQLAlchemy 一次查询多个表

flask - 使用flask-socketio频繁中断套接字连接

python - Flask-Uploads URL 始终是 404

python - SQLAlchemy 列列表中的值

python-3.x - Flask SQLalchemy 无法使用 Unix 套接字连接到 Google Cloud Postgresql 数据库

python - Apache 和 Flask : attempt to invoke directory as script

python - 如何将整个 SQL Server 表复制到 CSV(包括列标题)?