跳转到主要内容

SQLAlchemy的CRUD接口。

项目描述

Build Status Coverage Status Stories in Progress PyPI

sacrud

SACRUD将解决您为SQLAlchemy创建CRUD接口的问题。最初是为 pyramid_sacrud 创建的,但后来成为了一个独立的项目

看看它有多简单易用

创建

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)

如果条目已存在,只需添加选项 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)

读取

from .models import DBSession, Groups
from sacrud.action import CRUD

group_obj = CRUD(DBSession, Groups).read()
print(group_obj.name)

更新

from .models import DBSession, Groups
from sacrud.action import CRUD

group_obj = CRUD(DBSession, Groups).update(1, {'name': 'Chemistry'})
print(group_obj.name)

删除

from .models import DBSession, Groups
from sacrud.action import CRUD

CRUD(DBSession, Groups).delete(1)

多对多(M2M)和多对一(M2O)数据

对于添加m2m或m2o的多个数据,请使用结尾 [],例如。

from .models import DBSession, Users
from sacrud.action import CRUD

CRUD(DBSession, Users).create(
    {'name': 'Vasya', 'sex': 1,
     'groups[]': ['["id", 1]', '["id", 2]']}
)

它支持组合主键。

包装您的SQLAlchemy会话

from sqlalchemy.orm import scoped_session, sessionmaker
from sacrud import CRUDSession

Session = scoped_session(sessionmaker(class_=CRUDSession))
DBSession = Session()
DBSession.sacrud(User).delete(1)

包装您的zope.sqlalchemy会话

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)

现在,CRUD可以从DBSession中访问。

group_obj = DBSession.sacrud(Groups).create(data)
print(group_obj.name)

安装

从github安装

pip install git+http://github.com/sacrud/sacrud.git

PyPi

pip install sacrud

源代码

python setup.py install

贡献

支持

如果您遇到问题,请告诉我。我有一个位于sacrud@uralbash.ru的邮件列表和IRC频道 #sacrud。

许可证

本项目采用MIT许可协议。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

sacrud-0.3.7.post0.tar.gz (13.5 kB 查看哈希值)

上传时间:

由以下支持