Đây là một ví dụ về lợi ích mà flask-sqlalchemy mang lại cho bạn so với sqlalchemy đơn thuần.
Giả sử bạn đang sử dụng flask_user.
flask_user tự động tạo và xác thực các đối tượng người dùng, vì vậy nó cần truy cập vào cơ sở dữ liệu của bạn. Lớp UserManager thực hiện điều này bằng cách gọi thông qua một thứ gọi là "bộ điều hợp" để tóm tắt các lệnh gọi cơ sở dữ liệu. Bạn cung cấp bộ điều hợp trong hàm tạo UserManager và bộ điều hợp phải triển khai các chức năng sau:
class MyAdapter(DBAdapter):
def get_object(self, ObjectClass, id):
""" Retrieve one object specified by the primary key 'pk' """
pass
def find_all_objects(self, ObjectClass, **kwargs):
""" Retrieve all objects matching the case sensitive filters in 'kwargs'. """
pass
def find_first_object(self, ObjectClass, **kwargs):
""" Retrieve the first object matching the case sensitive filters in 'kwargs'. """
pass
def ifind_first_object(self, ObjectClass, **kwargs):
""" Retrieve the first object matching the case insensitive filters in 'kwargs'. """
pass
def add_object(self, ObjectClass, **kwargs):
""" Add an object of class 'ObjectClass' with fields and values specified in '**kwargs'. """
pass
def update_object(self, object, **kwargs):
""" Update object 'object' with the fields and values specified in '**kwargs'. """
pass
def delete_object(self, object):
""" Delete object 'object'. """
pass
def commit(self):
pass
Nếu bạn đang sử dụng flask-sqlalchemy, bạn có thể sử dụng SQLAlchemyAdapter tích hợp sẵn. Nếu bạn đang sử dụng sqlalchemy (not-flask-sqlalchemy), bạn có thể đưa ra các giả định khác nhau về cách các đối tượng được lưu vào cơ sở dữ liệu (như tên của các bảng), vì vậy bạn sẽ phải viết lớp bộ điều hợp của riêng mình.
flask-sqlalchemy
quá cũ kỹsqlalchemy
là gì không?