Managers¶
Manager base class¶
manager.Manager is used by ModelResource to implement a backend integration.
-
class
flask_potion.manager.Manager(resource, model)¶ Parameters: - resource (flask_potion.resource.Resource) – resource class
- model – model read from
Meta.modelorNone
-
relation_instances(item, attribute, target_resource, page=None, per_page=None)¶ Parameters: - item –
- attribute –
- target_resource –
- page –
- per_page –
Returns:
-
relation_add(item, attribute, target_resource, target_item)¶ Parameters: - item –
- attribute –
- target_resource –
- target_item –
Returns:
-
relation_remove(item, attribute, target_resource, target_item)¶ Parameters: - item –
- attribute –
- target_resource –
- target_item –
Returns:
-
paginated_instances(page, per_page, where=None, sort=None)¶ Parameters: - page –
- per_page –
- where –
- sort –
Returns: a
Paginationobject or similar
-
instances(where=None, sort=None)¶ Parameters: - where –
- sort –
Returns:
-
first(where=None, sort=None)¶ Parameters: - where –
- sort –
Returns: Raises: exceptions.ItemNotFound –
-
create(properties, commit=True)¶ Parameters: - properties –
- commit –
Returns:
-
read(id)¶ Parameters: id – Returns:
-
update(item, changes, commit=True)¶ Parameters: - item –
- changes –
- commit –
Returns:
-
delete(item)¶ Parameters: item – Returns:
-
delete_by_id(id)¶ Parameters: id – Returns:
-
class
flask_potion.manager.RelationalManager(resource, model)¶ RelationalManageris a base class for managers that do relational lookups on the basis of a query builder.
Manager implementations¶
The following backend managers ship with Flask-Potion:
-
class
contrib.memory.MemoryManager(resource, model)¶ An in-memory, pure-python
Managerimplementation.Warning
This manager is intended for debugging & testing only and should not be used in production.
-
class
contrib.alchemy.SQLAlchemyManager(resource, model)¶ A manager for SQLAlchemy models.
Expects that
Meta.modelcontains a SQLALchemy declarative model.
-
class
contrib.peewee.PeeweeManager(resource, model)¶ A manager for Peewee models.
Additionally, contrib.alchemy.SQLAlchemyManager can be extended with
contrib.principals.PrincipalsMixin to form a new manager that implements a permissions system based on Flask-Principals.