使用 SQLAlchemy 创建表
之前,您使用 Table 对象从一个「已存在」的数据库中反射出一张表。如果您想创建一张「新」表呢?您仍然会使用 Table 对象;不过,需要把 autoload 和 autoload_with 参数替换为 Column 对象。
Column 对象需要列名、一个可选格式的 SQLAlchemy 类型,以及用于不同约束的可选关键字参数。
在定义表时,请回忆视频中 Jason 如何通过 Column('name', String(255)) 将字符串的最大长度设置为 255。回看视频中的幻灯片也会有帮助。
定义完成后,您可以在元数据上使用 .create_all() 方法,并仅传入引擎(engine)作为参数,在数据库中创建该表。开始动手吧!
本练习是课程的一部分
Python 中的数据库入门
练习说明
- 从
sqlalchemy中导入Table、Column、String、Integer、Float、Boolean。 - 构建一个名为
data的新表,包含'name'(String(255))、'count'(Integer())、'amount'(Float())和'valid'(Boolean())列。Table()的第二个参数需要是已初始化的metadata。 - 通过将
engine传给metadata.create_all(),在数据库中创建该表。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Import Table, Column, String, Integer, Float, Boolean from sqlalchemy
from sqlalchemy import ____, ____, ____, ____, ____, ____
# Define a new table with a name, count, amount, and valid column: data
data = Table('data', ____,
Column(____, ____),
Column('count', Integer()),
Column(____, ____),
Column(____, ____)
)
# Use the metadata to create the table
metadata.create_all(____)
# Print table details
print(repr(data))