Python SQLAlchemy-给定一个查询对象,您能否确定是否已经应用了限制?

Python SQLAlchemy-给定一个查询对象,您能否确定是否已经应用了限制?,python,sqlalchemy,Python,Sqlalchemy,如果执行如下查询: models.Article.query.limit(5).limit(10) 限制实际上是10,5被覆盖 我有一些代码希望对查询应用限制,但只有在尚未应用限制的情况下。除了strquery中的if‘limit’之外,是否有其他方法可以确定是否已经存在限制:?据我所知,您可以检查是否存在_limitprivate属性集: query = models.Article.query.limit(5) print(query._limit) # prints 5 query

如果执行如下查询:

models.Article.query.limit(5).limit(10)
限制实际上是10,5被覆盖


我有一些代码希望对查询应用限制,但只有在尚未应用限制的情况下。除了strquery中的if‘limit’之外,是否有其他方法可以确定是否已经存在限制:?

据我所知,您可以检查是否存在_limitprivate属性集:

query = models.Article.query.limit(5)
print(query._limit)  # prints 5

query = models.Article.query
print(query._limit)  # prints None
这可能是检查是否存在应用限制的最直接方法,因为其本身正是这样做的:

@_generative(_no_statement_condition)
def limit(self, limit):
    """Apply a ``LIMIT`` to the query and return the newly resulting

    ``Query``.

    """
    self._limit = limit

您还可以在字符串检查中执行子字符串-查看LIMIT是否在查询语句中,但如果LIMIT被意外用作列/表名的一部分或作为文字限制,或者以任何其他方式出现,除非具有特殊含义,则很容易失败。

据我所知,您可以检查是否存在_limitprivate属性集:

query = models.Article.query.limit(5)
print(query._limit)  # prints 5

query = models.Article.query
print(query._limit)  # prints None
这可能是检查是否存在应用限制的最直接方法,因为其本身正是这样做的:

@_generative(_no_statement_condition)
def limit(self, limit):
    """Apply a ``LIMIT`` to the query and return the newly resulting

    ``Query``.

    """
    self._limit = limit
您还可以在字符串检查中执行子字符串-查看LIMIT是否在查询语句中,但是如果LIMIT被意外地用作列/表名的一部分,或者是文字限制,或者以除具有特殊含义之外的任何其他方式出现,则很容易失败