This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

CRUD interface for SQLAlchemy.

Project Description

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

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.

Release History

Release History

This version
History Node

0.3.7.post0

History Node

0.3.7

History Node

0.3.6

History Node

0.3.5

History Node

0.3.4

History Node

0.3.3

History Node

0.3.2.post0

History Node

0.3.2

History Node

0.3.1

History Node

0.3.0

History Node

0.2.9

History Node

0.2.8

History Node

0.2.7

History Node

0.2.6

History Node

0.2.5

History Node

0.2.4.post0

History Node

0.2.4

History Node

0.2.3

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
sacrud-0.3.7.post0.tar.gz (13.5 kB) Copy SHA256 Checksum SHA256 Source May 10, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting