zoukankan      html  css  js  c++  java
  • ORM操作mysql

    创建表和添加数据

    import sqlalchemy
    from sqlalchemy import create_engine
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy import Column, Integer, String
    from sqlalchemy.orm import sessionmaker


    engine = create_engine("mysql+pymysql://root:lizhaoqwe@10.20.252.223/test_db", echo=True)#echo=True可以查看详细信息
    Base = declarative_base()
    #创建表
    class User(Base):
    __tablename__ = 'user'#表名
    id = Column(Integer, primary_key=True)
    name = Column(String(32))
    password = Column(String(64))
      
        def __repr__(self):#显示ORM查询执行后的结果(不加这个方法返回的是内存地址)
    return '%s:%s' % (self.name, self.password)


    Base.metadata.create_all(engine) #创建表结构

    #创建连接
    Session_class = sessionmaker(bind=engine) #创建与数据库的会话session class,注意,这里返回的是一个类,不是一个实例
    session = Session_class()#生成session实例 #可以先理解成curson游标
    #查询
    # data = session.query(User).filter(User.id < 2).all()#是一个列表
    data = session.query(User).filter(User.id > 2).filter(User.id < 5)
    #查询出来后直接赋值修改数据
    data.name = 'username'
    data.password = 'password'
    session.commit()

    print(data)
    #插入数据
    user_obj1 = User(name='lizhao', password='lizhaoqwe123')#生成要创建的数据对象
    user_ibj2 = User(name='test', password='testqwe123')
    session.add(user_obj1)
    session.add(user_ibj2)
    session.commit()#必须commit之后才会添加数据
  • 相关阅读:
    有关macOS隐藏文件的问题
    AcWing 2548. 大胖子走迷宫(BFS)
    AcWing 1224. 交换瓶子(交换最少次数使得数列有序)
    AcWing 1220. 生命之树(树形DP)
    AcWing 1215. 小朋友排队(树状数组)
    AcWing 1214. 波动数列(推柿子+DP)
    Python文件操作
    远程升级程序过程
    找某个Linux内核可能调用的文件
    linux platform简易的理解
  • 原文地址:https://www.cnblogs.com/fengzi7314/p/9329248.html
Copyright © 2011-2022 走看看