1. 介绍 SQLALChemy
SQLALChemy 是一个 python 的 ORM(Object Relational Mapper) 框架,开发人员可以快速开发操作数据库的程序,
它提供完整的数据库访问层,提供高性能的数据库访问能力。
它支持 SQLite、MySQL、Postgres、Oracle 等常用的数据库访问
2. 安装 SQLAlChemy
pip install sqlalchemy
2.1 创建测试数据库
# 建立数据库
CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
2.2 用 SQLALChemy 创建数据库表
2.2.1 程序关键点
创建操作数据库的 engine,使用 pymysql 库访问 mysql 数据库
创建操作数据库的 session,绑定到 engine 上
从 Base 继承定义 User,Article 类,对应 mapping 到数据库的 member,article 表
使用 session.create_all 创建数据库表结构
session.add_all 新增数据到数据库
session.commit 提交所有变更到数据库,此时可以再数据库中查询插入的数据
查询数据使用 session.query 方法,也可以在后面连接使用 filter 进行条件过滤
#!/usr/bin/env python
# coding: utf-8
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 创建数据库 engine 使用 utf8 编码
eng = create_engine('mysql+pymysql://root:1@localhost:3306/test?charset=utf8')
Base = declarative_base()
# 创建 session 类,绑定engine
Session = sessionmaker(bind=eng)
session = Session()
class User(Base):
'''
用户类,对应数据库的 member 表
'''
__tablename__ = 'member'
# 定义表字段
mid = Column(Integer, primary_key=True)
nickname = Column(String(50))
email = Column(String(128))
def __repl__(self):
return ''.format(mid,
email,
nickname)
class Article(Base):
'''
文章类,对应数据库中的 article 表
'''
__tablename__ = 'article'
# 定义表字段
arid = Column(Integer, primary_key=True)
tags = Column(String(128))
desc