0
我想申请机构的一些访问规则类型,我打算使用元组的列表,用于限制指定以下
['|',('name','=','root'), ('role','=','admin')]
使用后缀符号,如规则...sqlalchemy基于元组列表的评估标准,搜索?
有任何现有机制蟒蛇,可以帮助我这样的域名转换为SQLAlchemy的查询郎像
or_(User.name='root', User.role='admin')
我想申请机构的一些访问规则类型,我打算使用元组的列表,用于限制指定以下
['|',('name','=','root'), ('role','=','admin')]
使用后缀符号,如规则...sqlalchemy基于元组列表的评估标准,搜索?
有任何现有机制蟒蛇,可以帮助我这样的域名转换为SQLAlchemy的查询郎像
or_(User.name='root', User.role='admin')
这里有一个的开始:
我要重写你的EXPRES用前缀符号表示;操作员是第一,其他值遵循,所以:
test_expression = ['|',('=','name','root'), ('=','role','admin')]
但是,你很可能添加一些运营商特定的检查处理在其他地方运营商。
def buildquery(context, expression):
OPERATORS[expression[0]](context, expression[1:])
def build_or(context, args):
return sqlalchemy.or_(*(buildquery(context, arg) for arg in args))
def build_eq(context, args):
colname, value = args
return getattr(context, colname) == value
OPERATORS = {
'|': build_or,
'=': build_eq}
,并使用它,通过你想要使用的查询与被映射的类:
session.query(User).filter(build_query(User, test_expression))
没有,但你可以建立一个。最近的相关问题请参阅http://stackoverflow.com/questions/7411812/how-to-create-literal-based-query-in-sqlalchemy。 – van