1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Cơ sở dữ liệu với Python

Connected

Bài tập

Tự động tải bảng từ cơ sở dữ liệu

SQLAlchemy có thể tự động tải các bảng từ cơ sở dữ liệu bằng kỹ thuật gọi là reflection. Reflection là quá trình đọc cơ sở dữ liệu và xây dựng metadata dựa trên thông tin đó. Đây là cách làm ngược lại với việc tự tạo một Table thủ công và rất hữu ích khi làm việc với các cơ sở dữ liệu hiện có.

Để thực hiện reflection, trước tiên bạn cần import và khởi tạo một đối tượng MetaData. Đối tượng MetaData chứa thông tin về các bảng được lưu trong cơ sở dữ liệu. Trong quá trình reflection, đối tượng MetaData sẽ tự động được điền thông tin về bảng được phản chiếu, vì vậy chúng ta chỉ cần khởi tạo nó trước bằng cách gọi MetaData().

Bạn cũng cần import đối tượng Table từ gói SQLAlchemy. Sau đó, bạn dùng đối tượng Table này để đọc bảng từ engine, tự động tải các cột, và điền metadata. Việc này có thể thực hiện bằng một lần gọi Table(): dùng Table theo cách này khá giống với việc truyền đối số cho một hàm. Ví dụ, để tự động tải các cột với engine, bạn phải truyền các đối số từ khóa autoload=True và autoload_with=engine cho Table().

Cuối cùng, để xem thông tin về đối tượng bạn vừa tạo, bạn sẽ dùng hàm repr(). Với bất kỳ đối tượng Python nào, repr() trả về biểu diễn dạng văn bản của đối tượng đó. Với các đối tượng Table của SQLAlchemy, nó sẽ trả về thông tin về bảng nằm trong metadata.

Trong bài tập này, nhiệm vụ của bạn là phản chiếu bảng "census" có sẵn trên engine vào một biến có tên census. Chúng tôi đã điền sẵn phần mã tạo engine mà bạn đã viết ở bài trước.

Hướng dẫn

100 XP
  • Import Table và MetaData từ sqlalchemy.
  • Tạo một đối tượng MetaData: metadata
  • Phản chiếu bảng census bằng cách dùng đối tượng Table với các đối số:
    • Tên của bảng dưới dạng chuỗi ('census').
    • Đối tượng metadata bạn vừa khởi tạo.
    • autoload=True
    • Engine để tự động tải cùng — trong trường hợp này là engine.
  • In chi tiết của census bằng hàm repr().