sacrud
SACRUD will solve your problem of CRUD interface for SQLAlchemy. Originally created for pyramid_sacrud , but then in a separate project
Look how easy it is to use:
CREATE
from .models import DBSession, Groups
from sacrud.action import CRUD
data = {'name': 'Electronics',
'parent_id': '10',}
group_obj = CRUD(DBSession, Groups).create(data)
print(group_obj.name)
If the entry already exists, just add the option 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)
READ
from .models import DBSession, Groups
from sacrud.action import CRUD
group_obj = CRUD(DBSession, Groups).read()
print(group_obj.name)
UPDATE
from .models import DBSession, Groups
from sacrud.action import CRUD
group_obj = CRUD(DBSession, Groups).update(1, {'name': 'Chemistry'})
print(group_obj.name)
DELETE
from .models import DBSession, Groups
from sacrud.action import CRUD
CRUD(DBSession, Groups).delete(1)
M2M and M2O data
For adding multiple data for m2m or m2o use endinng [], ex.:
from .models import DBSession, Users
from sacrud.action import CRUD
CRUD(DBSession, Users).create(
{'name': 'Vasya', 'sex': 1,
'groups[]': ['["id", 1]', '["id", 2]']}
)
It support composit primary key.
Wraps your SQLAlchemy session
from sqlalchemy.orm import scoped_session, sessionmaker
from sacrud import CRUDSession
Session = scoped_session(sessionmaker(class_=CRUDSession))
DBSession = Session()
DBSession.sacrud(User).delete(1)
Wraps your zope.sqlalchemy session
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)
Installation
Install from github:
pip install git+http://github.com/sacrud/sacrud.git
PyPi:
pip install sacrud
Source:
python setup.py install
Contribute
Issue Tracker: http://github.com/sacrud/sacrud/issues
Source Code: http://github.com/sacrud/sacrud
Support
If you are having issues, please let me know. I have a mailing list located at sacrud@uralbash.ru and IRC channel #sacrud
License
The project is licensed under the MIT license.
Metadata
Release files for sacrud 0.3.7.post0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| sacrud-0.3.7.post0.tar.gz | 13.5 kB | Without provenance | Details |
Release files / sacrud-0.3.7.post0.tar.gz
| Download URL | sacrud-0.3.7.post0.tar.gz |
|---|---|
| Size | 13.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2701c6c840e49e883a6f09476015ee070c41c67e0cef087ec229ed42cf0aa70f
|
|
BLAKE2b-256 checksum How to use checksums |
1faac1d8f1af6227f9af767f96459e927ac0e2da272c321079879603d8d72c45
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for sacrud 0.3.7.post0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.