我使用事件侦听器在创建表时使用数据预填充数据库。
假设ProductType
您的代码中有模型:
from sqlalchemy import event, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class ProductType(Base):
__tablename__ = 'product_type'
id = Column(Integer, primary_key=True)
name = Column(String(100))
首先,您需要定义一个回调函数,该函数将在创建表时执行:
def insert_data(target, connection, **kw):
connection.execute(target.insert(), {'id': 1, 'name':'spam'}, {'id':2, 'name': 'eggs'})
然后你只需添加事件监听器:
event.listen(ProductType.__table__, 'after_create', insert_data)