关于sqlalchemy 2.0版本的查询

最近工作需要sqlalchemy的方式去查询数据库,看了很多网上的教程,发现查询的时候用的是engine.execute(select(表名))的方式去查询,报错,这好像是1.x版本的做法吗?

应该是这样:

from sqlalchemy import *
from sqlalchemy.orm import sessionmaker


# id name sex tel addr salary

def get_con():
    engine = create_engine("mysql+pymysql://user:passwd@localhost:3306/dbtest11",
                           echo=True)
    engine.connect()
    return engine

def select_data(engine):
    metadata = MetaData()

    # 创建一个数据表
    Employee = Table('employee', metadata,
                     Column('id', Integer),
                     Column('name', String),
                     Column('sex', String),
                     Column('tel', String),
                     Column('addr', String),
                     Column('salary', Double)
                     )

    # 查询数据
    SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
    session = SessionLocal()
    # 查询所有用户
    emps = session.execute(select(Employee))
    session.close()
    print(emps)
    for emp in emps:
        print(emp)
    #
    #     # 查询特定用户
    # user = session.execute(select(Employee).where(Employee.name == '李四')).scalars().first()
    # if user:
    #     print(user.name, user.age)


def main():
    engine = get_con()
    print(engine)
    select_data(engine)

if __name__ == '__main__':
    main()
    print('ok')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值