python持久化框架_想设计一个Python的持久层框架

这篇博客讨论了设计一个Python持久层框架的想法,旨在结合ORMapping和权限控制。作者考虑了iBatis和ActiveRecord的实现方式,并提出了XML配置SQL及在对象级别实施权限控制的概念。此外,还提到了在sqlalchemy基础上扩展以实现权限管理的可能性。
摘要由CSDN通过智能技术生成

框架定义在持久层,除提供ORMapping功能外加点权限控制。ORMapping的代码学习iBatis和ActiveRecord的做法,可使用任意一种,想象中xml应该这样子定义

select c1,c2 from table where c1=:name

调用时类似:

sqlmap.execute("queryTable",name="xxx")

ActiveRecord的类似:

t=sqlmap.select("table",id="1")

t.c1="xxxx"

t.save()#t.delete()...

权限配置:

可以在sqlmap标签上配置权限,如:

....

针对用ActiveRecord的还可以对表中数据的权限进行分配。如某个用户可以对某个表的那些行进行更新或删除,或者对某些行的某写列拥有update权限,其他则一律没有,用户组可继承多个用户组等等。。。

用sqlmap的就只能对每条命令进行限制。

对映射对象的的任何操作如果没有权限则抛出异常。

不知道大家以为如何?

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-04-24 23:24

浏览 1495

论坛回复 / 浏览 (8 / 2407)

评论

8 楼

phyeas

2009-04-25

还是决定在sqlalchemy上进行扩展

7 楼

phyeas

2009-04-25

如果当前用户对某个对象没有更新权限,代码

obj.name=""

就会报异常,在没有执行save之前,保证该对象在python里的值与数据库中一致

6 楼

phyeas

2009-04-25

并不只是对每个sql操作进行权限控制,而是对每个持久化对象进行控制,比如查询出一堆对象,那我就能知道这堆对象里哪些我能改,哪些能查,哪些能删,并且关联其他表的话我还可以知道我能不能关联出这些数据。

5 楼

jjx

2009-04-25

python什么都是对象,所以说应该不是问题吧

比方说你的sqlmap直接就是sqlalchemy的select,insert之类的

queryTable=select([ table ],table.c.c1==bindparam('name'))

为sqlmap 定义权限

queryTable.allow={'group':'group1','user'='xxx'}

写一个query方法

def query(s):

if hasattr(s,'allow'):

#判断执行之类的

4 楼

phyeas

2009-04-25

不过如果大家知道怎么扩展sqlalchemy,使得可以满足权限控制的需求的话请不吝赐教,先谢过了。总比自己从0开始好

3 楼

phyeas

2009-04-25

用xml配置是因为xml具有更好的可读性。

2 楼

phyeas

2009-04-25

我的需求是能在持久层做权限控制。sqlalchemy好像不能满足这个需求吧

1 楼

jjx

2009-04-25

很好奇为什么sqlalchemy不能满足需求,而且使用了python ,还有必要用xml配置吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值