第二篇:操纵MySQL数据库(2) - 基于ORM思想的SQLAlchemy库
前言
本文讲解在Python语言中使用SQLAlchemy库操纵MySQL数据库的方法。
由于具体内容涉及较多,本文仅以插入及展示数据为例,更多内容请查阅有关文档。
ORM
ORM也即对象 - 关系映射。
在前文中,操纵的对象针对数据库中的关系表。而ORM机制能让你的处理对象由这些表转换成Python中的表对象。
这样的机制意义不小,它能让你在不了解SQL语句的条件下使用数据库。
准备工作
1. 安装Python和MySQL;
2. 安装SQLAlchemy。("easy_install sqlalchemy"即可)。
总体步骤
1. 创建一个数据库;
2. 导入SQLAlchemy库相关内容 (详见下面代码展示部分);
3. 定义表对象结构;
4. 建立数据库连接引擎;
5. 基于 4 中创建的引擎创建一个会话类型;
6. 定义会话对象;
7. 定义并初始化表对象;
8. 插入表对象;
9. 关闭会话。
代码示例
1 # -*- coding: utf-8 -*- 2 # ================================================ 3 # 作者: 方萌 4 # 创建时间: 20**/**/** 5 # 版本号: 1.0 6 # 联系方式: 1505033833@qq.com 7 # ================================================ 8 # sqlalchemy 相关模块 9 from sqlalchemy import Column, String, INT, create_engine 10 from sqlalchemy.orm import sessionmaker 11 from sqlalchemy.ext.declarative import declarative_base 12 # 表对象的基类: 13 Base = declarative_base() 14 # 定义User表对象 15 class User(Base): 16 # 表名: 17 __tablename__ = 'testTable' 18 # 表的结构: 19 name = Column(String(20), primary_key=True) 20 age = Column(INT) 21 # 建立数据库连接引擎 22 engine = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/testDB') 23 # 创建DBSession类型 24 DBSession = sessionmaker(bind=engine) 25 # 创建session对象 26 session = DBSession() 27 # 创建新User对象 28 new_user = User(name='方萌ORM', age='25') 29 # 添加到session 30 session.add(new_user) 31 # 提交即保存到数据库 32 session.commit() 33 # 关闭session 34 session.close()
运行结果
小结
基于ORM机制的库还有很多,可根据实际需要进行选择。
本文旨在讲述ORM的思想以及展示基本使用套路。更多高级的用法(如创建表,创建外键关系等)请查阅相关文档。