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