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

时间:2018-09-15 17:51:31

标签: python python-3.x pyramid

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. query(BlogRecord)是否从BlogRecord继承?
  2. request.dbsession.query我不知道。

1 个答案:

答案 0 :(得分:2)

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

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。同样,“文档”是社区贡献的教程,而不是文档。有关官方文档和教程,请访问https://docs.pylonsproject.org/projects/pyramid/en/latest/index.html

相关问题