SQLAlchemy学习

一、数据库连接

DB_URL = "mysql+pymysql://root:111111@192.168.100.108:3306/sql_t?charset=utf8"
engine = create_engine(DB_URL) #创建引擎

二、创建映射

1、声明式映射

    Base = declarative_base() 
    class User(Base):
      __tablename__ = ‘user‘ 
      # __tablename__属性指示Table 应与映射一起生成的名称:
      id = Column(Integer, primary_key=True)
      name = Column(String)
      fullname = Column(String)
      nickname = Column(String)
    # 创建的类继承Base类, Column对象与类定义内联放置。声明式映射过程将Table针
    # 对MetaData与声明式基相关联的集合生成一个新 对象,并且每个指定的 Column对
    # 象都将成为Table.columns 该Table对象集合的一部分

    所述Column 对象可以省略它们的“名称”字段,这通常是在第一位置参数的Column构造; 声明式系统将分配与每个相关联的键
    Column作为名称,以生成Table等效于:
    user_table = Table(
      "user",
      Base.metadata,
      Column("id", Integer, primary_key=True),
      Column("name", String),
      Column("fullname", String),
      Column("nickname", String),
    )       
    ## 2、命令式映射(经典映射)
    mapper_registry = registry()
    # 创建table
    user_table = Table(
        ‘user‘,
        mapper_registry.metadata,
        Column(‘id‘, Integer, primary_key=True),
        Column(‘name‘, String(50)),
        Column(‘fullname‘, String(50)),
        Column(‘nickname‘, String(12))
    )
    # 创建表元数据
    class User:
        pass

    mapper_registry.map_imperatively(User, user_table)# User通过registry.map_imperatively()方法与类关联:

经典映射与声明式映射可以互相转化,两个系统最终都会创建相同的配置

三、事务操作,增删改查

1、session.add()

2、session.delete()

3、session.merge()或session.update()

4、session.querry()

四、关联关系

1、relationship

SQLAlchemy学习

上一篇:Oracle-ASM磁盘组属性


下一篇:mysql 备份并且迁移整个数据库