Aqui está um exemplo de um benefício flask-sqlalchemy oferece a você sobre sqlalchemy simples.
Suponha que você esteja usando flask_user.
flask_user automatiza a criação e autenticação de objetos de usuário, portanto, ele precisa acessar seu banco de dados. A classe UserManager faz isso chamando algo chamado "adaptador" que abstrai as chamadas do banco de dados. Você fornece um adaptador no construtor UserManager, e o adaptador deve implementar estas funções:
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
Se você estiver usando flask-sqlalchemy, poderá usar o SQLAlchemyAdapter integrado. Se você estiver usando sqlalchemy (not-flask-sqlalchemy), poderá fazer suposições diferentes sobre a maneira como os objetos são salvos no banco de dados (como os nomes das tabelas), portanto, você terá que escrever sua própria classe de adaptador.
flask-sqlalchemy
são mais velho lisosqlalchemy
em um aplicativo Flask?