# coding=UTF8
"""
create time:2022-11-19 11:13:19
@Author :wyk
"""
from sqlalchemy import create_engine # 一个 ORM 框架,同时也支持原生 SQL,类似于 Java 的 Hibernate 框架
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
engine = create_engine('mysql+mysqldb://root:******@localhost:3306/wyk?charset=utf8',
# 打印执行语句
echo=True,
# 连接池大小
pool_size=10,
# 指定时间内回收连接
pool_recycle=3600)
# 映射基类
Base = declarative_base()
# 具体映射类
class Course(Base):
# 指定映射表名
__tablename__ = 'course'
# 映射表名
id = Column(Integer, primary_key=True)
name = Column(String(30))
score = Column(Integer())
# 创建表
# Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session() # 创建Session类实例
# 新增数据
# c = []
# c1 = Course(name='语文', score=90)
# c2 = Course(name='数学', score=100)
# c3 = Course(name='英语', score=95)
# c.append(c1)
# c.append(c2)
# c.append(c3)
# session.add_all(c)
# session.commit()
# 查询数据
t = session.query(Course).filter(Course.id == 1).one() # 单条
print('科目是{0},成绩是{1}'.format(t.name, t.score))
ts = session.query(Course).filter(Course.id > 0).all() # 所有
for t in ts:
print('科目是{0},成绩是{1}'.format(t.name, t.score))
# 修改数据
t1 = session.query(Course).filter(Course.id == 1).one()
print('修改前:科目是{0},成绩是{1}'.format(t1.name, t1.score))
t1.name = '语文1' # 修改赋值
session.commit()
t2 = session.query(Course).filter(Course.id == 1).one()
print('修改后:科目是{0},成绩是{1}'.format(t2.name, t2.score))
# 删除数据
session.delete(t2)
session.commit()
session.close()
python基础知识(19)之MYSQL-sqlalchemy
最新推荐文章于 2024-05-28 15:36:28 发布