我有一个定义如下的函数来查询数据库表
def query_from_DB(obj, **filter):
DBSession = sessionmaker(bind=engine)
session = DBSession()
res = session.query(obj).filter_by(**filter)
session.close()
return [x for x in res]
我使用下面的请求查询表格
query_from_DB(Router, sp_id="sp-10.1.10.149", connectivity="NO")
上面的结果正确地返回了来自DB的响应,但是当我使用
进行查询时query_from_DB(Router, sp_id!="sp-10.1.10.149", connectivity="NO")
我收到了错误
SyntaxError: non-keyword arg after keyword arg
我可以为获得结果做出哪些可能的改变?
答案 0 :(得分:0)
我不相信你可以在关键字参数上使用!=
。
您可以执行connectivity="YES"
或使用filter
sqlalchemy功能,这样您就可以通过==
或!=
,但之后您将无法使用关键字参数。你必须像这样传递一个SQL表达式......
res = session.query(obj).filter_by(connectivity != "NO")
这个问题可能有帮助... flask sqlalchemy querying a column with not equals
答案 1 :(得分:-1)
您是否只是尝试res = session.query(obj).filter_by(connectivity <> "NO")
?