一、数据库连接
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()方法与类关联: