Python 如何使用';创建后';炼金术?
我有几个模型,我想在其中存储一些值,这些值在应用程序的生命周期内保持不变。我想在这些模型被创建为数据库中的表时立即插入这些值,所以我在Google上查找了它,结果显示“事件”如“创建后”。然而,从我目前所做的来看,我根本无法让它工作 我的模型: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
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创建表。在创建后的
方法中,您在哪里提交了事务?