如何使用Flask API在Python中查询过滤器返回的响应

问题描述 投票:0回答:1

我的任务是将所有ASP.NET Web API迁移到Pyhton API。我正在将Flask与蓝图结合使用以实现这一目标。

现在,我正在filtering中挣扎Python API中返回的结果(使用Flask开发)

[我在ASP.NET Web API中的操作方式

query = String.Concat(queryMain, queryWhere, queryOrder, "  order by " + (String.IsNullOrEmpty(orderBy) ? " start_time " : orderBy + " " + orderType));
var ctx = new LairdDbContext();

        try
        {
            var anomalyList = ctx.AnomaliUinque.SqlQuery(query).ToList<AnomalyUnique>();
            if (anomalyList == null)
            {
                return null;
            }
            Ag.Items = anomalyList.Where(x => x.rownumber >= startfrom && x.rownumber <= skp).ToList();
            Ag.Total = anomalyList.Count();
            return Ag;
        }

注意,我正在使用var anomalyList = ctx.AnomaliUinque.SqlQuery(query).ToList<AnomalyUnique>();

然后我使用以下行过滤返回的结果Ag.Items = anomalyList.Where(x => x.rownumber >= startfrom && x.rownumber <= skp).ToList();

在上面的代码行中,rownumber是由query返回的列之一

这是我的Python Flask API版本[这是错误的,因为由于'WHERE rownumber'部分,所生成的查询存在语法错误]

query = querymain + queryWhere + queryOrder + ' order by ' + m_orderBy + ' WHERE rownumber >= {0} AND rownumber <= {1}'.format(startfrom,skp)
print(query)
try:
    cursor.execute(query)
    rows = cursor.fetchall()
    resp = jsonify(rows)
    resp.headers.add('Access-Control-Allow-Origin', '*')
    resp.status_code = 200
    print(resp)
    return resp
except Exception as e:

    print(e)
    return '', 400
finally:
    cursor.close()

现在,我的问题是如何使用Flask API(特别是以下一行)在Python中复制相同的过滤器。

anomalyList.Where(x => x.rownumber >= startfrom && x.rownumber <= skp).ToList();

python flask flask-restful
1个回答
0
投票

使用标准库中的filter()

filter(lambda x: x["rownumber"] >= startfrom && x["rownumber"] <= skp, resp)
© www.soinside.com 2019 - 2024. All rights reserved.