文章目录
[隐藏]
1. 介绍 SQLALChemy
2. 安装 SQLAlChemy
2.1 创建测试数据库
2.2 用 SQLALChemy 创建数据库表
3. 多进程搜索程序
3.1 程序关键点
3.2 程序运行
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)) description = Column(String(256)) title = Column(String(256)) def create_tab