金字塔中的这个结构是什么意思?

What does this construct in Pyramid mean?

pyramid docs

建造
@classmethod
def all(cls, request):
    query = request.dbsession.query(BlogRecord)
    return query.order_by(sa.desc(BlogRecord.created))

我不明白这个声明是怎么回事。

query = request.dbsession.query(BlogRecord)

据我所知,我们创建了一个查询示例 class,但我们从中得到了什么:

  1. query(BlogRecord) 从 BlogRecord 继承?
  2. request.dbsession.query我不知道。

假设您完成了教程中的所有先前步骤,包括 1. Create your pyramid_blogr project structure and Adding model definitions,您会知道 BlogRecord 是一个对象或 class BlogRecord 的一个实例它继承自 models.meta 中定义的 SQLAlchemy 元数据 Base class,它是使用 alchemy cookiecutter 创建的。这一行:

query = request.dbsession.query(BlogRecord)

创建一个变量 query 并分配一个数据库查询对象作为它的值。它还不执行查询。下一行就是这样做的,returns 结果。

更进一步,拆开 request.dbsession.queryrequest 部分是一个 request 对象,它在 Pyramid 中传递。属性可以附加到请求对象,在这种情况下 dbsession 对象(SQLAlchemy 数据库会话对象)是属性。这又具有一个名为 query 的方法,它接受一个数据模型作为其参数。

这主要是 Python 关于 classes 和方法的东西,并不特定于 Pyramid。我建议阅读 Python 文档和教程中的更多内容。

注:@not_a_bot_no_really_82353的回答是完全错误的。 Pyramid 不使用 requests (复数)库。金字塔有一个 request (singular) object. Also the "docs" are a community-contributed tutorial, not documentation. For official documentation and tutorials, visit https://docs.pylonsproject.org/projects/pyramid/en/latest/index.html