微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 如何使用sqlalchemy将初始数据加载到数据库中

我希望能够在使用sqlAlchemy创建表时自动加载数据.

django中,您有fixtures,它允许您在创建表时使用数据轻松预填充数据库.我觉得这很有用,特别是当你有基本的“查找”表时,例如product_type,student_type只包含几行甚至是一个像货币一样的表格,它们会加载世界上所有的货币而不必在销毁模型/类时反复键入它们.

我目前的应用程序不使用django.我有sqlAlchemy.我怎样才能实现同样的目标?我希望应用程序知道数据库是第一次创建,因此它会使用数据填充一些表.

最佳答案
我使用事件监听器在创建表时使用数据预填充数据库.

假设您的代码中有ProductType模型:

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)

原文地址:https://www.jb51.cc/python/439568.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐