Python 如何使用';创建后';炼金术?

Python 如何使用';创建后';炼金术?,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我有几个模型,我想在其中存储一些值,这些值在应用程序的生命周期内保持不变。我想在这些模型被创建为数据库中的表时立即插入这些值,所以我在Google上查找了它,结果显示“事件”如“创建后”。然而,从我目前所做的来看,我根本无法让它工作 我的模型: class Role(db.Model): __tablename__ = 'role' id = db.Column(db.Integer, primary_key=True) value = db.Column(d

我有几个模型,我想在其中存储一些值,这些值在应用程序的生命周期内保持不变。我想在这些模型被创建为数据库中的表时立即插入这些值,所以我在Google上查找了它,结果显示“事件”如“创建后”。然而,从我目前所做的来看,我根本无法让它工作

我的模型:

class Role(db.Model):
    
    __tablename__ = 'role'

    id = db.Column(db.Integer, primary_key=True)
    value = db.Column(db.String(100), nullable=False, unique=True)
    initial_values = ('VALUE1', 'VALUE2', 'VALUE3')
我正在使用的事件:

@db.event.listens_for(Role.__table__, 'after_create')
def after_create(mapper, connection, target):
    print('ADDING VALUES')
    table = Role.__table__
    connection.execute(table.insert().values([{'value': value} for value in Role.__intial_values]))
添加一个print语句只是为了检查函数的执行位置,但是一旦我创建了表,就没有任何内容添加到表中,也没有出现任何错误


注意:我正在使用Flask Migrate的CLI创建表。

在创建后的
方法中,您在哪里提交了事务?