目的:将数据库的(错误执行的本次日志)记录过滤打印在文件里。
区别:filter_by()与filter()
实现:
res = Task.query.filter_by(task_id=task_id).one()
filter_by()源码
def filter_by(self, **kwargs):
clauses = [
_entity_descriptor(self._joinpoint_zero(), key) == value
for key, value in kwargs.items()
]
return self.filter(*clauses)
r"""将给定的过滤标准应用于副本
这个 :class:`.Query`,使用关键字表达式。
例如。::
session.query(MyClass).filter_by(name = 'some name')
多个标准可以指定为逗号分隔;效果
是它们将使用 :func:`.and_` 连接在一起
功能::
session.query(MyClass).\
filter_by(name = 'some name', id = 5)
关键字表达式是从主要的
查询的实体,或作为查询的最后一个实体
调用 :meth:`.Query.join` 的目标。
.. 也可以看看::
:meth:`.Query.filter` - 过滤 SQL 表达式。
"""
filter()源码
def filter(self, *criterion):
for criterion in list(criterion):
criterion = expression._expression_literal_as_text(criterion)
criterion = self._adapt_clause(criterion, True, True)
if self._criterion is not None:
self._criterion = self._criterion & criterion
else:
self._criterion = criterion
r"""将给定的过滤标准应用于副本
这个 :class:`.Query`,使用 SQL 表达式。
例如。::
session.query(MyClass).filter(MyClass.name == 'some name')
多个标准可以指定为逗号分隔;效果
是它们将使用 :func:`.and_` 连接在一起
功能::
session.query(MyClass).\
过滤器(MyClass.name == 'some name',MyClass.id > 5)
条件是适用于
选择的 WHERE 子句。字符串表达式被强制
通过 :func:`.text` 构造进入 SQL 表达式构造。
.. 也可以看看::
:meth:`.Query.filter_by` - 过滤关键字表达式。
"""