使用SQLAlchemy ORM进行一些基础的操作(建表,插入,查询,删除)

原创 2015年11月18日 21:39:38

引入sqlalchemy包

from sqlalchemy import Table,Column, String, create_engine,MetaData,text
from sqlalchemy.orm import sessionmaker,mapper
from sqlalchemy.ext.declarative import declarative_base

 

连接数据库的相关参数

db_config={
    'user':'root',
    'passwd':'',
    'host':'localhost',
    'db':'test',
    'port':'3306',
    'charset':'utf8'
}

 

生成engine

query='mysql+mysqlconnector://%s:%s@%s:%s/%s?charset=%s'%(
    db_config['user'],
    db_config['passwd'],
    db_config['host'],
    db_config['port'],
    db_config['db'],
    db_config['charset']
)
engine=create_engine(query,echo=True)
 
定义表格(必须有主键)
Base=declarative_base()
class hehe(Base):
    __tablename__='hehe'
    a=Column(String,primary_key=True)
    b=Column(String)
    def __repr__(self):
        return('<hehe(a=%s,b=%s)>'%(self.a,self.b))

 

在建立engine以及定义表格的基础上,可以生成表格

### create table----------------------------------------------
Base.metadata.create_all(engine)
##-------------------------------------------------------------
 
生成session(需要engine) (session用于插入,查询等)
### create session
Session=sessionmaker(bind=engine)
session=Session()
 
批量插入
## insert new data to table
a=[1,2,3,4,5,6]
b=[6,7,8,9,0,1]
hehe_list=[hehe(a=str(a[i]),b=str(b[i])) for i in range(6)]
session.add_all(hehe_list)
session.commit()

 

单行插入

e_hehe=hehe(a='5',b='6')
session.add(e_hehe)
session.commit()

 

使用session.query进行查询的一些方法

#-------------------------------------------------------------
our_hehe=session.query(hehe).filter_by(a='1').all()[0]
#-------------------------------------------------------------
for instance in session.query(hehe).order_by(hehe.a):
    print(instance.a,instance.b)
#-------------------------------------------------------------
for a,b in session.query(hehe.a,hehe.b):
    print(a,b)
#-------------------------------------------------------------
for line in session.query(hehe.a,hehe.b).all():
    print(line.a,line.b)
#-------------------------------------------------------------
from sqlalchemy.orm import aliased
hehe_alias=aliased(hehe,name='hehe_alias')
for row in session.query(hehe_alias,hehe_alias.a).all():
    print(row.hehe_alias)
##------------------------------------------------------------

 

query查询中使用过滤器(filter的一些方法) (即session.query.filter(……))

### Common Filter Operators------------------------------------
#equals:
# query.filter(User.name == 'ed')
#------------------------------------
# not equals:
# query.filter(User.name != 'ed')
#------------------------------------
# LIKE:
# query.filter(User.name.like('%ed%'))
#------------------------------------
# IN:
# query.filter(User.name.in_(['ed', 'wendy', 'jack']))
#------------------------------------
# NOT IN:
# query.filter(~User.name.in_(['ed', 'wendy', 'jack']))
#------------------------------------
# IS NULL:
# query.filter(User.name == None)
#------------------------------------

 

使用textual sql进行选择,允许用于自定义查询语句

res=session.query(hehe).from_statement(text("select * from hehe")).all()

 

删除行记录

x=session.query(hehe).filter(hehe.a=='1').one()
session.delete(x)
 
也可以是 
session.delete(session.query(hehe).filter(hehe.a=='1').one())

 

最后,别忘了把session关闭

session.close()

版权声明:本文为博主原创文章,未经博主允许不得转载。

sqlalchemy学习(四)ORM model及数据库表的增删改查

目前,许多主流的语言,都实现了对象关系映射(ORM Object Relational Mapper)的库包。ORM的主要功能是将数据库表中的每条记录映射成一个对象。所有的数据库操作,都转化为Sqla...

SQLAlchemy基本操作和常用技巧

http://www.phperz.com/article/14/1029/14403.html 本文为大家讲解了Python的ORM框架SQLAlchemy基本操作和常用技巧,包含大量实例,非常...

Python中使用SQLAlchemy连接Mysql数据库(单表操作)

一,SQLAlchemy的安装 使用$ easy_install sqlalchemy 或 $ pip install sqlalchemy如果出现什么错,就进去root用户下进行安装...

SQLAlchemy批量插入性能比较

import time import sqlite3 from sqlalchemy.ext.declarative import declarative_base from sqlalchemy ...
  • five3
  • five3
  • 2017年04月26日 10:25
  • 2906

SQLAlchemy 使用经验

 SQLAlchemy 使用经验 201212311:02 PM14866次查看 分类:Python 标签:Python 上篇文章提到了,最近在用 Python 做一个网...

Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)

首先说下,由于最新的 0.8 版还是开发版本,因此我使用的是 0.79 版,API 也许会有些不同。 因为我是搭配 MySQL InnoDB 使用,所以使用其他数据库的也不能完全照搬本文。 接...

Python学习总结笔记(10)-- MySQL数据库操作之SQLAlchemy使用总结

SQLAlchemy是一个著名的ORM框架,使用ORM操作数据库,不用去关注SQL语句本身,这样可以提高开发的效率。同时使用ORM框架虽然可以减少代码编写的消耗,但是可能也会执行很多冗余的数据库操作,...

SQLAlchemy (一)---创建表、插入数据、查询

一、创建数据库表格建立Python文件alchemy5.py,代码如下:#!/usr/bin/ python #encoding:utf8from sqlalchemy import * from s...
  • will130
  • will130
  • 2015年09月16日 21:28
  • 7329

SqlAlchemy个人学习笔记完整汇总

使用 sqlalchemy 有3种方式: 方式1, 使用raw sql; 方式2, 使用SqlAlchemy的sql expression; 方式3, 使用ORM.   前两种方式可以统称...
  • MMX
  • MMX
  • 2015年08月28日 22:35
  • 15680

sqlalchemy学习(三):创建数据库表格

在创建数据库表格之前,首先请保证数据库已经通过mysql命令创建完毕。 数据库创建好以后,我们需要定义数据库类型。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用SQLAlchemy ORM进行一些基础的操作(建表,插入,查询,删除)
举报原因:
原因补充:

(最多只允许输入30个字)