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

posted @ 2017-05-20 17:14  穆晨  阅读(763)  评论(0编辑  收藏  举报