sacrud
¶from sqlalchemy.orm import scoped_session, sessionmaker
from sacrud import CRUDSession
Session = scoped_session(sessionmaker(class_=CRUDSession))
DBSession = Session()
DBSession.sacrud(User).delete(1)
Now CRUD available from DBSession.
group_obj = DBSession.sacrud(Groups).create(data)
print(group_obj.name)
from sqlalchemy.orm import scoped_session, sessionmaker
from zope.sqlalchemy import ZopeTransactionExtension
from sacrud import crud_sessionmaker
DBSession = crud_sessionmaker(scoped_session(
sessionmaker(extension=ZopeTransactionExtension())))
DBSession.sacrud(User).delete(1)
Now CRUD available from DBSession.
group_obj = DBSession.sacrud(Groups).create(data)
print(group_obj.name)
data = {'name': 'Electronics',
'parent_id': '10'}
group_obj = DBSession.sacrud(Groups).create(data)
print(group_obj.name)
If the entry already exists, just add the option update=True
.
update=True
¶from .models import DBSession, Groups
from sacrud.action import CRUD
data = {'id': 6, # existing entry
'name': 'Electronics',
'parent_id': '10',}
group_obj = CRUD(DBSession, Groups).create(data, update=True)
print(group_obj.name)
You can pass JSON data:
from .models import DBSession, Groups
from sacrud.action import CRUD
data = '''
{
"id": 6,
"name": "Electronics",
"parent_id": "10"
}
'''
group_obj = CRUD(DBSession, Groups).create(data, update=True)
print(group_obj.name)
For more details see:
sacrud.action.CRUD
sacrud.tests.test_action.CreateTest
DBSession.sacrud(Users).read()
DBSession.sacrud(User2Groups).read({'user_id': 4, 'group_id': 2})
primary_keys =[
{'user_id': 4, 'group_id': 2},
{'user_id': 4, 'group_id': 3},
{'user_id': 1, 'group_id': 1},
{'user_id': 19, 'group_id': 2}
]
rows = DBSession.sacrud(User2Groups).read(*primary_keys)
rows.delete(synchronize_session=False)
DBSession.sacrud(Users).read((5, 10)) # as list
DBSession.sacrud(Users).read(5, "1", 2) # as *args
DBSession.sacrud(Users).read(42) # single
You can pass JSON data:
# Composite primary_key
DBSession.sacrud(User2Groups).read({'user_id': 4, 'group_id': 2})
primary_keys =[
{'user_id': 4, 'group_id': 2},
{'user_id': 4, 'group_id': 3},
{'user_id': 1, 'group_id': 1},
{'user_id': 19, 'group_id': 2}
]
rows = DBSession.sacrud(User2Groups).read(*primary_keys)
For more details see:
sacrud.action.CRUD
sacrud.tests.test_action.ReadTest
DBSession.sacrud(Users).update(1, {'name': 'Petya'})
DBSession.sacrud(Users).update('1', {'name': 'Petya'})
DBSession.sacrud(User2Groups).update({'user_id': 4, 'group_id': 2},
{'group_id': 1})
DBSession.sacrud(Users).update(1, '{"name": "Petya"}')
DBSession.sacrud(User2Groups).update(
'{"user_id": 4, "group_id": 2}',
'{"group_id": 1}'
)
For more details see:
sacrud.action.CRUD
sacrud.tests.test_action.UpdateTest
DBSession.sacrud(Users).delete(1)
DBSession.sacrud(Users).delete('1')
DBSession.sacrud(User2Groups).delete({'user_id': 4, 'group_id': 2})
DBSession.sacrud(User2Groups).delete('{"user_id": 4, "group_id": 2}')
For more details see:
sacrud.action.CRUD
sacrud.tests.test_action.DeleteTest