SQLAlchemy Core插入数据,有好几种方法呢

看是一次插入一条还是多条,

看是数据表名是变量还是常量,

操作还是很灵活的,

主要看哪种顺手顺眼啦。

 

#coding=utf-8

from datetime import datetime
from sqlalchemy import (MetaData, Table, Column, Integer, Numeric, String, Boolean,
                        DateTime, ForeignKey, ForeignKey, create_engine, insert)

metadata = MetaData()

cookies = Table('cookies', metadata,
                Column('cookie_id', Integer(), primary_key=True),
                Column('cookie_name', String(50), index=True),
                Column('cookie_recipe_url', String(255)),
                Column('cookie_sku', String(55)),
                Column('quantity', Integer()),
                Column('unit_cost', Numeric(12, 2))
                )

users = Table('users', metadata,
              Column('user_id', Integer(), primary_key=True),
              Column('username', String(15), nullable=False, unique=True),
              Column('email_address', String(255), nullable=False),
              Column('phone', String(20), nullable=False),
              Column('password' ,String(25), nullable=False),
              Column('created_on', DateTime(), default=datetime.now),
              Column('updated_on', DateTime(), default=datetime.now, onupdate=datetime.now)
              )

orders = Table('orders', metadata,
               Column('order_id', Integer(), primary_key=True),
               Column('user_id', ForeignKey('users.user_id')),
               Column('shipped', Boolean(), default=False)
               )

line_items = Table('line_items', metadata,
                   Column('line_items_id', Integer(), primary_key=True),
                   Column('order_id', ForeignKey('orders.order_id')),
                   Column('cookie_id', ForeignKey('cookies.cookie_id')),
                   Column('quantity', Integer()),
                   Column('extended_cost', Numeric(12, 2))
                   )

engine = create_engine('mysql+pymysql://a:b@1.2.3.4:3306/cookies')
metadata.create_all(engine)
connection = engine.connect()

ins = cookies.insert().values(
    cookie_name="chocolate chip",
    cookie_recipe_url="http://some.aweso.me/",
    cookie_sku="CC01",
    quantity="12",
    unit_cost="0.50"
    )
print(str(ins))
print ins.compile().params

result = connection.execute(ins)
print result.inserted_primary_key

ins = insert(cookies).values(
    cookie_name="chocolate chip",
    cookie_recipe_url="http://some.aweso.me/cookie/recipe.html",
    cookie_sku="CC01",
    quantity="12",
    unit_cost="0.50"
    )

ins = cookies.insert()
result = connection.execute(
    ins,
    cookie_name='dark chocolate chip',
    cookie_recipe_url='http://some.aweso.me/cookie/recipe_dark.html',
    cookie_sku='CC02',
    quantity='1',
    unit_cost='0.75'
    )

print result.inserted_primary_key

inventory_list = [
    {
        'cookie_name': 'peanut butter',
        'cookie_recipe_url': 'http://some.aweso.me/cookie/peanut.html',
        'cookie_sku': 'PB01',
        'quantity': '24',
        'unit_cost': '0.25'
        },
    {
        'cookie_name': 'oatmeal raisin',
        'cookie_recipe_url': 'http://some.okay.me/cookie/raisin.html',
        'cookie_sku': 'EWW01',
        'quantity': '100',
        'unit_cost': '1.00'
        }
    ]

result = connection.execute(ins, inventory_list)
print result

时间: 2024-07-31 04:39:52

SQLAlchemy Core插入数据,有好几种方法呢的相关文章

Yii2.0 批量插入数据的几种方法

最近在批量插入数据的时候一直插入数据出错,经过查手册以及度娘,总结出两种方法: 第一种方法: $model = new User(); foreach($data as $attributes) {      $_model = clone $model;      $_model->setAttributes($attributes);      $_model->save(); } 第二种方法 $model = new User(); foreach($data as $attribute

SQLServer 批量插入数据的两种方法_MsSql

运行下面的脚本,建立测试数据库和表值参数. 复制代码 代码如下: --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable( Id int primary key, UserName nvarchar(32), Pwd varchar(16)) go --Create Table Valued CREATE TYPE BulkUdt A

SQLServer 批量插入数据的两种方法

运行下面的脚本,建立测试数据库和表值参数. 复制代码 代码如下: --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable( Id int primary key, UserName nvarchar(32), Pwd varchar(16)) go --Create Table Valued CREATE TYPE BulkUdt A

MongoDB插入数据的3种方法_MongoDB

insert()方法:    下面是在inventory集合中插入一个三个字段的文档:        复制代码 代码如下: db.inventory.insert( { _id: 10, type: "misc", item: "card", qty: 15 } )         在实示例中,文档有一个用户指定的值为10的_id字段,这个值必须在inventory集合中唯一.update()方法:    调用update()方法使用upsert标志创建一个新文档当

Mysql 导入.sql数据实现几种方法

mysql教程 导入.sql数据实现几种方法 方法如下: 1. 先用jive用户连接: e:mysqlbin>mysql -u jive -p jive 2. 再运行如下命令: mysql> . f:workingfolderjivejdondatabasejive_mysql.sql   我的个人实践是:php教程myadmin 导出 utf-8 的 insert 模式的 abc.sql ftp abc.sql 到服务器 ssh 到服务器 mysql -u abc -p use kkk(数据

PHP获取POST数据的几种方法汇总

 本文给大家汇总介绍了PHP获取POST数据的几种常用方法,这里分享给大家,有需要的小伙伴来参考下吧.     一.PHP获取POST数据的几种方法 方法1.最常见的方法是:$_POST['fieldname']; 说明:只能接收Content-Type: application/x-www-form-urlencoded提交的数据 解释:也就是表单POST过来的数据 方法2.file_get_contents("php://input"); 说明: 允许读取 POST 的原始数据.

在Dreamweaver中插入背景音乐的几种方法

dreamweaver|插入 在 Dreamweaver 中插入背景音乐的几种方法 多次收到喜欢太平洋网络学院的网友的信件,信中提问如何在 Dreamweaver 中插入背景音乐,现在让我一次性向大家介绍几种背景音乐的插入方法,让更多的人去掌握它. 一.直接插入法 1.打开一张需要插入背景音乐的网页,在菜单中找到这样的命令: Windows - > Behaviors,调出"Behaviors"行为面板,如下图所示(Dreamweaver MX 的面板): 2.点击"+

Flash MX本地保存数据的二种方法

数据 谈到计算机操作,往往就不了数据操作,最基本的数据操作就是读取和保存数据.Flash程序很多时候也会用到数据操作,比如说载入外部文件就是读取数据.然而Flash保存数据的能力是很有限的.Flash 5时我们还可以用fscommond来本地保存外部文本文件,到了FlashMX时代,出于对安全因素的考虑,Micromedia取消了这个功能. 那是不是我们就无法用Flash MX保存数据了呢?回答是否定的,这里我就系统给大家介绍用Flash MX本地保存外部数据的三种方法. 方法一:使用MMsav

在Word文档中快速插入日期的五种方法

  在Word文档中快速插入日期的五种方法          方法1:使用"插入"选项卡中的"日期和时间"功能插入当前系统日期. 在"插入"选项卡的"文本"选项组中单击[日期和时间]按钮,打开"日期和时间"对话框,在"可用格式"列表框中选择用户想要的格式,如图1所示.如果用户希望每次打开Word时都自动更新时间,可同时选中"自动更新"复选框. 图1 打开"时