sqlalchemy的crud接口。
sacrud的Python项目详细描述
萨克鲁德
sacrud将为sqlalchemy解决crud接口的问题。 最初是为 pyramid_sacrud ,但在另一个项目中
看看它是多么容易使用:
创建
from.modelsimportDBSession,Groupsfromsacrud.actionimportCRUDdata={'name':'Electronics','parent_id':'10',}group_obj=CRUD(DBSession,Groups).create(data)print(group_obj.name)
如果条目已经存在,只需添加选项^ {TT1}$。
from.modelsimportDBSession,Groupsfromsacrud.actionimportCRUDdata={'id':6,# existing entry'name':'Electronics','parent_id':'10',}group_obj=CRUD(DBSession,Groups).create(data,update=True)print(group_obj.name)
读取
from.modelsimportDBSession,Groupsfromsacrud.actionimportCRUDgroup_obj=CRUD(DBSession,Groups).read()print(group_obj.name)
更新
from.modelsimportDBSession,Groupsfromsacrud.actionimportCRUDgroup_obj=CRUD(DBSession,Groups).update(1,{'name':'Chemistry'})print(group_obj.name)
删除
from.modelsimportDBSession,Groupsfromsacrud.actionimportCRUDCRUD(DBSession,Groups).delete(1)
M2M和M2O数据
要为M2M或M2O添加多个数据,请使用endinng[],例如:
from.modelsimportDBSession,Usersfromsacrud.actionimportCRUDCRUD(DBSession,Users).create({'name':'Vasya','sex':1,'groups[]':['["id", 1]','["id", 2]']})
它支持复合主键。
包装您的sqlalchemy会话
fromsqlalchemy.ormimportscoped_session,sessionmakerfromsacrudimportCRUDSessionSession=scoped_session(sessionmaker(class_=CRUDSession))DBSession=Session()DBSession.sacrud(User).delete(1)
包装您的zope.sqlalchemy会话
fromsqlalchemy.ormimportscoped_session,sessionmakerfromzope.sqlalchemyimportZopeTransactionExtensionfromsacrudimportcrud_sessionmakerDBSession=crud_sessionmaker(scoped_session(sessionmaker(extension=ZopeTransactionExtension())))DBSession.sacrud(User).delete(1)
现在可以从dbsession获得crud。
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
许可证
这个项目是根据麻省理工学院的许可证授权的。