Tạo bảng với SQLAlchemy
Trước đây, bạn đã dùng đối tượng Table để phản chiếu (reflect) một bảng từ cơ sở dữ liệu đã tồn tại, nhưng nếu bạn muốn tạo một bảng mới thì sao? Bạn vẫn dùng đối tượng Table; tuy nhiên, bạn cần thay thế các tham số autoload và autoload_with bằng các đối tượng Column.
Đối tượng Column nhận tên, một kiểu dữ liệu của SQLAlchemy có thể kèm định dạng tùy chọn, và các tham số từ khóa tùy chọn cho những ràng buộc khác nhau.
Khi định nghĩa bảng, nhớ lại trong video Jason đã truyền 255 làm độ dài tối đa của String bằng cách dùng Column('name', String(255)). Xem lại các slide của video có thể giúp bạn.
Sau khi định nghĩa xong, bạn có thể tạo bảng trong cơ sở dữ liệu bằng cách gọi phương thức .create_all() trên metadata và truyền engine làm tham số duy nhất. Bắt tay vào làm nhé!
Bài tập này là một phần của khóa học
Nhập môn Cơ sở dữ liệu với Python
Hướng dẫn bài tập
- Import
Table,Column,String,Integer,Float,Booleantừsqlalchemy. - Xây dựng một bảng mới tên
datavới các cột'name'(String(255)),'count'(Integer()),'amount'(Float()), và'valid'(Boolean()). Đối số thứ hai củaTable()cần làmetadata, đối tượng này đã được khởi tạo sẵn. - Tạo bảng trong cơ sở dữ liệu bằng cách truyền
enginevàometadata.create_all().
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))