什么是SQLAlchemy?mysql
是Python链接SQL数据库的一种方式,须要经过驱动来链接。 sql
是Python中使用最普遍的ORM(对象关系映射)工具之一,即把数据库中的二维表结构映射成一个list对象,list对象的每个元素是一个tuple,例如: 数据库
id | name |
1 | 'Michael' |
2 | 'Bob' |
3 | 'Adam' |
[
==> ('1', 'Michael'), ('2', 'Bob'), ('3', 'Adam') ]
为何要使用SQLAlchemy?json
能够经过对象来操做数据库,避免了麻烦的sql语句session
如何使用SQLAlchemy链接MySQL数据库?工具
1 定义映射关系spa
2 链接到数据库code
3 经过对象操做数据库orm
# 导入: from sqlalchemy import Column, Integer, String, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base # 建立对象的基类: Base = declarative_base() # 定义User对象: 能够定义多个类 class User(Base): # 表的名字: __tablename__ = 'user' # 表的结构: id = Column(Integer, primary_key=True) name = Column(String(20))
# 初始化数据库链接: engine = create_engine('mysql+mysqlconnector://root:yourpassword@localhost:3306/test')
# 链接信息: '数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名' # 这里是用 mysql.connector驱动(pip install mysql), # Python3能够使用pymysql驱动 'mysql+pymysql://......' # 只能链接到已经存在的数据库,不能新建
# 自动建立表
Base.metadata.create_all(engine)
# 建立DBSession类型: DBSession = sessionmaker(bind=engine)
# 操做数据库(增删改查) session = DBSession()
session对象能够经过三种方式操做数据库:
A 经过实例对象 session.add(User(id=3, name='zoro')) 、 delete、 ...
B 原生SQL语句 session.execute('select * from user where id=%d' % 3)
C 经过SQL表达式
session.execute('SELECT * FROM user WHERE id=?', {'param': 5})
new_user = User(id='5', name='Bob') session.add(new_user) session.commit() session.close()