欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Python3 sqlalchemy-5.创建表格的另一种方法

最编程 2024-03-16 09:17:22
...

在对表对象进行创建的时候,一般有两种方式能够完成,如下是两种方式的创建过程对比sql

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

from sqlalchemy.sql.schema import Table, Column

from sqlalchemy.sql.sqltypes import Integer

from sqlalchemy.ext.declarative import declarative_base

 

Base = declarative_base()

两种方法,spa

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

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

# Method one:

class table_one(Base):

__tablename__ = 'table_one'

id = Column(Integer, primary_key=True)

 

# Method two:

class table_two(Base):

  __table__ = Table('table_two', Base.metadata,

            Column('id', Integer, primary_key=True))

最后运行显示

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

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://zhuanlan.zhihu.com/p/444930067

https://www.imooc.com/article/22343

原文地址:https://www.cnblogs.com/lizexiong/p/17253140.html