SQLAlchemy Core查询中的动态限制

时间:2017-06-06 19:24:30

标签: python sql sqlalchemy

我想编写一个查询,我可以动态地将各种限制传递给SQLA Core。例如,我希望能够在SELECT查询WHERE color = 'blue'上指定或不动态指定。传递{'color': 'blue'}限制字典可能会很好,或者可能有更标准的方法。

我已经阅读了教程和API文档,但我想知道:

SQLA Core中动态限制的惯用合约是什么,以及如何实现?

1 个答案:

答案 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'}