我的任务是将所有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()
anomalyList.Where(x => x.rownumber >= startfrom && x.rownumber <= skp).ToList();
使用标准库中的filter()
filter(lambda x: x["rownumber"] >= startfrom && x["rownumber"] <= skp, resp)