Python 金字塔中的这个结构是什么意思?
建造自 我不明白这句话是怎么回事Python 金字塔中的这个结构是什么意思?,python,python-3.x,pyramid,Python,Python 3.x,Pyramid,建造自 我不明白这句话是怎么回事 query = request.dbsession.query(BlogRecord) 据我所知,我们创建了一个查询类的示例,但我们从中得到了什么: query(BlogRecord)从BlogRecord继承 request.dbsession.query我不知道 假设您已经完成了教程中前面的所有步骤,包括和,您会知道BlogRecord是类BlogRecord的对象或实例,该类继承自models.meta中定义的SQLAlchemy元数据Base类,该类是
query = request.dbsession.query(BlogRecord)
据我所知,我们创建了一个查询类的示例,但我们从中得到了什么:
query(BlogRecord)
从BlogRecord继承request.dbsession.query
我不知道假设您已经完成了教程中前面的所有步骤,包括和,您会知道
BlogRecord
是类BlogRecord
的对象或实例,该类继承自models.meta中定义的SQLAlchemy元数据Base
类,该类是使用alchemy
cookiecutter创建的。这一行:
query = request.dbsession.query(BlogRecord)
创建变量query
,并指定数据库查询对象作为其值。它还没有执行查询。下一行执行此操作并返回结果
更进一步,分解request.dbsession.query
,request
部分是一个在金字塔中传递的对象。属性可以附加到请求对象,在这种情况下,dbsession
对象(SQLAlchemy数据库会话对象)就是属性。这又有一个名为query
的方法,该方法接受数据模型作为其参数
这主要是关于类和方法的Python内容,而不是特定于Pyramid。我建议阅读Python文档和教程中的更多内容
注意:来自@not \-u a \-u bot \-u no \-u really \-u 82353的答案完全错误。金字塔不使用请求
(复数)库。金字塔有一个巨大的空间。此外,“文档”是社区提供的教程,而不是文档。有关官方文档和教程,请访问关于“BlogRecord从何而来”的:它是在同一教程前面的几节课中定义的:。将Python类映射到数据库表并允许查询数据库的库是SQLAlchemy(Pyramid本身没有内置的持久化机制),您需要查看SQLAlchemy文档以了解模型和查询的工作原理:
query = request.dbsession.query(BlogRecord)