我想编写一个查询,我可以动态地将各种限制传递给SQLA Core。例如,我希望能够在SELECT
查询WHERE color = 'blue'
上指定或不动态指定。传递{'color': 'blue'}
限制字典可能会很好,或者可能有更标准的方法。
我已经阅读了教程和API文档,但我想知道:
SQLA Core中动态限制的惯用合约是什么,以及如何实现?
答案 0 :(得分:2)
您可以动态地构建查询而不会出现任何问题。例如,你可以这样做:
let activeIndex = 0; let scrollTopPadding = -100; let wrapper; let fields;
$(document).ready(() => { wrapper = $('.wrapper'); fields = $('.field'); fields.click(function() {
scrollToActiveField(this); });
let inputs = $('.field button');
inputs.click(function(){
scrollToActiveField($(this).parent()); }); inputs.click(function(event) { // enter
let nextInputIndex = inputs.index(this) + 1;
if (nextInputIndex < inputs.length) {
inputs.eq(nextInputIndex).focus();
}
});
setActiveTab(); });
其中query = select([table])
for key, value in params.iteritems():
query = query.where(table.columns[key] == value)
print conn.execute(query).fetchall()
只是params
等限制词典。这将生成一个查询,其中所有 where 子句都与AND链接。当然,如果你需要更复杂的 where 子句,查询的构造可能会有点困难。
一个工作示例:
{'column': 'value'}