Python3 sqlalchemy-5.创建表格的另一种方法
在对表对象进行创建的时候,一般有两种方式能够完成,如下是两种方式的创建过程对比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
- 第一种首先对__tablename__进行赋值,肯定表名,随后创建列实例,赋值给同名的类属性;
- 第二种方法是直接利用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
下一篇: Python 生成器、生成器和迭代器