Hier ist ein Beispiel für einen Vorteil, den Ihnen die Kolben-Sqlalchemie gegenüber der einfachen Sqlalchemie bietet.
Angenommen, Sie verwenden flask_user.
flask_user automatisiert die Erstellung und Authentifizierung von Benutzerobjekten, sodass auf Ihre Datenbank zugegriffen werden muss. Die Klasse UserManager ruft dazu einen sogenannten "Adapter" auf, der die Datenbankaufrufe abstrahiert. Sie stellen im UserManager-Konstruktor einen Adapter bereit, und der Adapter muss folgende Funktionen implementieren:
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
Wenn Sie flask-sqlalchemy verwenden, können Sie den integrierten SQLAlchemyAdapter verwenden. Wenn Sie sqlalchemy (not-flask-sqlalchemy) verwenden, können Sie unterschiedliche Annahmen darüber treffen, wie Objekte in der Datenbank gespeichert werden (wie die Namen der Tabellen), sodass Sie Ihre eigene Adapterklasse schreiben müssen.
flask-sqlalchemy
über alt sindsqlalchemy
?