初学sqlalchemy
这两天一直在研究python对mysql的连接
1. ORM模型
ORM 全称 Object Relational Mapping
, 翻译过来叫 对象关系映射
。简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。
2. 对应关系的理解
数据表 | 面向对象 |
---|---|
一张表 | 一个类 |
实例对象 | 表的一条数据 |
如果上标没看懂请看下图:
想要实现 MySQL 数据表到 Python 类的映射 就要应用ORM模型中的sqlalchemy
安装 sqlalchemy 用到以下 cmd 命令:
pip install sqlalchemy
在使用之前必须拥有 mysql 的驱动 安装 mysql 驱动命令如下:
pip install pymysql
2.1引擎
from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql//user:password@127.0.0.1:3306/study?
charset=utf8')
# 引擎创建
create_engine('数据库类型+驱动//用户名:密码@IP地址:端口/数据表?编码格式')
2.2 基类
from sqlalchemy.ext.declarative import declarative_base
# 创建基类时加入引擎
Base = declarative_base(engine)
3 整体操作
整体操作就是一套连招QWER一起按 (结束战斗)
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String, Integer
# 创建引擎
engine = create_engine('mysql+pymysql//xxx:xxxxx@127.0.0.1:3306/xxx?
charset=utf8')
# 创建基类
Base = declarative_base(engine)
class User(Base):
"""创建的类继承自基类Base"""
# 创建表的名称
__tablename__ = 'user'
# 创建字段
id = Column(Integer, primary_key=True)
name = Column(String(64), unique=True, nullable=False)
email = Column(String(64), unique=True)
def __repr__(self):
return f'{self.name}'
if __name__ == __main__ :
# 创建数据表
Base.metadata.create_all()