SQLAlchemy Core - Kết nối với cơ sở dữ liệu
Trong chương trước, chúng ta đã thảo luận về Ngôn ngữ biểu thức trong SQLAlchemy. Bây giờ chúng ta hãy tiến hành các bước liên quan đến việc kết nối với cơ sở dữ liệu.
Lớp động cơ kết nối một Pool and Dialect together cung cấp một nguồn cơ sở dữ liệu connectivity and behavior. Một đối tượng của lớp Engine được khởi tạo bằng cách sử dụngcreate_engine() chức năng.
Hàm create_engine () nhận cơ sở dữ liệu làm một đối số. Cơ sở dữ liệu không cần thiết phải được xác định ở bất kỳ đâu. Biểu mẫu gọi tiêu chuẩn phải gửi URL dưới dạng đối số vị trí đầu tiên, thường là một chuỗi biểu thị phương ngữ cơ sở dữ liệu và đối số kết nối. Sử dụng đoạn mã dưới đây, chúng ta có thể tạo một cơ sở dữ liệu.
>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///college.db', echo = True)
Cho một MySQL database, sử dụng lệnh dưới đây -
engine = create_engine("mysql://user:pwd@localhost/college",echo = True)
Đề cập cụ thể DB-API được sử dụng để kết nối, URL string có dạng như sau:
dialect[+driver]://user:password@host/dbname
Ví dụ, nếu bạn đang sử dụng PyMySQL driver with MySQL, sử dụng lệnh sau:
mysql+pymysql://<username>:<password>@<host>/<dbname>
Các echo flaglà một lối tắt để thiết lập ghi nhật ký SQLAlchemy, được thực hiện thông qua mô-đun ghi nhật ký tiêu chuẩn của Python. Trong các chương tiếp theo, chúng ta sẽ tìm hiểu tất cả các SQL được tạo. Để ẩn đầu ra dài dòng, hãy đặt thuộc tính echo thànhNone. Các đối số khác cho hàm create_engine () có thể là phương ngữ cụ thể.
Hàm create_engine () trả về một Engine object. Một số phương thức quan trọng của lớp Engine là:
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | connect() Trả về đối tượng kết nối |
2 | execute() Thực thi một cấu trúc câu lệnh SQL |
3 | begin() Trả về trình quản lý ngữ cảnh cung cấp Kết nối với Giao dịch được thiết lập. Sau khi hoạt động thành công, Giao dịch được cam kết, nếu không, Giao dịch sẽ được khôi phục |
4 | dispose() Loại bỏ nhóm kết nối được Engine sử dụng |
5 | driver() Tên trình điều khiển của phương ngữ được Engine sử dụng |
6 | table_names() Trả về danh sách tất cả các tên bảng có sẵn trong cơ sở dữ liệu |
7 | transaction() Thực thi chức năng đã cho trong ranh giới giao dịch |