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)

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...