Python与数据库 sqlalchemy 建立声明层表对象的两种方式

在对表对象进行建立的时候,通常有两种方式可以完成,以下是两种方式的建立过程对比

首先导入需要的模块,获取一个声明层

1 from sqlalchemy.sql.schema import Table, Column
2 from sqlalchemy.sql.sqltypes import Integer
3 from sqlalchemy.ext.declarative import declarative_base
4 
5 Base = declarative_base()

两种方法,

  1. 第一种首先对__tablename__进行赋值,确定表名,随后建立列实例,赋值给同名的类属性;
  2. 第二种方法是直接利用Table()类对__table__进行赋值,通过Table类建立起表的各项属性信息。

Note: 此处两种方法都使用声明层作为基类,第一种方法未传入metadata,会自动使用Base.metadata,第二种方法则直接进行了传入。

复制代码
1 # Method one:
2 class table_one(Base):
3     __tablename__ = 'table_one'
4     id = Column(Integer, primary_key=True)
5 
6 # Method two:
7 class table_two(Base):
8     __table__ = Table('table_two', Base.metadata, 
9             Column('id', Integer, primary_key=True))
复制代码

最后运行显示

1 print(type(table_one), type(table_one.id), table_one.id, sep='\n')
2 print(type(table_two), type(table_two.id), table_two.id, sep='\n')

输出结果

复制代码
<class 'sqlalchemy.ext.declarative.api.DeclarativeMeta'>  
<class 'sqlalchemy.orm.attributes.InstrumentedAttribute'>  
table_one.id  
<class 'sqlalchemy.ext.declarative.api.DeclarativeMeta'>  
<class 'sqlalchemy.orm.attributes.InstrumentedAttribute'>  
table_two.id  
复制代码

从输出的结果中可以看出,两种方式建立的表是相同类型的。

转载于:https://www.cnblogs.com/dingjiaoyang/p/11039421.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值