这在金字塔中的构造意味着什么?

问题描述 投票:2回答:1

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)

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

  1. 来自BlogRecord的query(BlogRecord)继承?
  2. request.dbsession.query我不知道。
python python-3.x pyramid
1个回答
2
投票

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

query = request.dbsession.query(BlogRecord)

创建变量query并将数据库查询对象指定为其值。它还没有执行查询。下一行就是这样,并返回结果。

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

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

注意:来自@ not_a_bot_no_really_82353的答案是完全错误的。金字塔不使用requests(复数)库。金字塔有一个request (singular) object。 “docs”也是社区贡献的教程,而不是文档。有关官方文档和教程,请访问https://docs.pylonsproject.org/projects/pyramid/en/latest/index.html

© www.soinside.com 2019 - 2024. All rights reserved.