构建 session 对象所有和数据库的 ORM 操作都必须通过一个叫做 session 的会话对象 来实现,通过以下代码来获取会话对象
代码实现
# SQLAlchemy对数据的CRUD
#SQLAlchemy模型映射表结构.
from sqlalchemy import create_engine,Column,Integer,String
from sqlalchemy.orm import declarative_base,sessionmaker# 数据库的变量
HOST = '127.0.0.1'
PORT = 3306
DATA_BASE = 'itbz'
USER = 'root'
PWD = '123456'
DB_URL = f'mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}'# 创建引擎
engine = create_engine(DB_URL)
# 创建一个基类
Base = declarative_base()class Person(Base):__tablename__='t_person'id = Column(Integer,primary_key=True,autoincrement=True)name = Column(String(32))age = Column(Integer)country = Column(String(32))# 创建session对象来操作数据
Session = sessionmaker(engine)# 添加一条数据
def create_data_one():with Session() as session:p1=Person(name='sxt',age=6,country='北京')session.add(p1)session.commit()# 添加多条数据
def create_data_many():with Session() as session:p2=Person(name='孔明',age=19,country='北京')p3=Person(name='周瑜',age=18,country='上海')session.add_all([p2,p3])session.commit()# 查询全部数据
def query_data_all():with Session() as session:all_person = session.query(Person).all()for p in all_person:print(f'{p.id}: {p.name} {p.age} {p.country}')# 查询第一条数据
def query_data_first():with Session() as session:p = session.query(Person).first()print(f'{p.id}: {p.name} {p.age} {p.country}')# 根据参数查询数据
def query_data_by_params():with Session() as session:# 查询 如果有一条用first ,多条为all# p = session.query(Person).filter_by(name='周瑜').first()p = session.query(Person).filter(Person.name=='周瑜').first()print(f'{p.id}: {p.name} {p.age} {p.country}')def update_data():with Session() as session:p = session.query(Person).filter(Person.name=='周瑜').first()p.age = 28# 提交事务session.commit()# 删除数据
def delete_data():with Session() as session:p = session.query(Person).filter(Person.name=='周瑜').first()session.delete(p)session.commit()if __name__=="__main__":# 删除delete_data()# 查询query_data_all()
添加单条数据
添加多条数据
查询全部数据
查询第一条数据
根据参数查询数据
第一种方式:
第二种方式:
更新数据
删除数据