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之后才会添加数据
  • 相关阅读:
    学习进度条博客2
    软件工程第二周开课博客
    switch is not a valid resource name (reserved Java keyword)
    返回一个整型数组中最大子数组的和(2)
    返回一个整型数组中最大子数组的和(1)
    二级联动
    微信小程序连接Java后台
    异步数据加载和更新(来源官网)
    动态数据+时间坐标轴(部分注释)
    Echarts-样式简介
  • 原文地址:https://www.cnblogs.com/fengzi7314/p/9329248.html
Copyright © 2011-2022 走看看