Managers ExampleΒΆ
This example assumes that ripozo-sqlalchemy is installed. To install it simple
pip install ripozo-sqlalchemy
from ripozo_sqlalchemy import AlchemyManager
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# Setup the database with sqlalchemy
Base = declarative_base(create_engine('sqlite:///:memory:', echo=True))
session = sessionmaker()()
# Declare your ORM model
class Person(Base):
__tablename__ = 'person'
id = Column(Integer, primary_key=True)
first_name = Column(String)
last_name = Column(String)
secret = Column(String)
Base.metadata.create_all()
from ripozo_sqlalchemy import AlchemyManager
class PersonManager(AlchemyManager):
fields = ['id', 'first_name', 'last_name']
model = Person
paginate_by = 10
sessions = session
from ripozo.viewsets.restmixins import CreateRetrieveList, RetrieveUpdateDelete
from ripozo.viewsets.relationships import Relationship, ListRelationship
class PersonListResource(CreateRetrieveList):
_resource_name = 'people'
_manager = PersonManager
_namespace = '/api'
_relationships = [
ListRelationship('people', relation='PersonResource'),
],
_links = [
Relationship('created', relation='PersonResource'),
Relationship('next', relation='PersonListResource'),
Relationship('previous', relation='PersonListResource')
]
class PersonResource(RetrieveUpdateDelete):
_resource_name = 'person'
_manager = PersonManager
_pks = ['id']
_namespace = '/api'