前言
本文讲解在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的思想以及展示基本使用套路。更多高级的用法(如创建表,创建外键关系等)请查阅相关文档。