python基础知识(19)之MYSQL-sqlalchemy

# 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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值