Aquí hay un ejemplo de un beneficio que el frasco-sqlalchemy le brinda sobre el simple sqlalchemy.
Suponga que está usando flask_user.
flask_user automatiza la creación y autenticación de objetos de usuario, por lo que necesita acceder a su base de datos. La clase UserManager hace esto llamando a algo llamado "adaptador" que abstrae las llamadas a la base de datos. Proporciona un adaptador en el constructor UserManager y el adaptador debe implementar estas funciones:
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
Si está usando flask-sqlalchemy, puede usar el SQLAlchemyAdapter incorporado. Si está utilizando sqlalchemy (not-flask-sqlalchemy), puede hacer diferentes suposiciones sobre la forma en que los objetos se guardan en la base de datos (como los nombres de las tablas), por lo que tendrá que escribir su propia clase de adaptador.
flask-sqlalchemy
son más viejo y simplesqlalchemy
en una aplicación frasco?