金字塔的“模型”是否也是金字塔的“资源”?

Ben*_*Tut 5 python python-3.x pyramid

我目前正在学习如何使用Python Pyramid Web框架,并且发现该文档非常出色。

但是,在区分“模型”(即在SQLAlchemy的声明性系统下定义的类)和“资源”(即在视图上定义访问控制列表的方法)的概念时,我遇到了绊脚石。用于Pyramid的身份验证系统)。

我了解上述陈述似乎表明我已经理解了它们之间的区别,但是我无法理解是应该创建模型资源(通过__acl__直接在模型类中添加属性)还是创建单独的资源类(具有适当的__parent____name__属性),它表示访问使用所述模型的视图。

任何指导表示赞赏。

Sas*_*ied 2

如果应用程序的域模型是分层的,则 Pyramid 提供了资源的思想来构建资源树。遍历用于将 URL 映射到代码并识别资源树中的资源。使用关系数据库时通常不使用资源和遍历。

\n

摘自《捍卫设计——金字塔可以遍历,而我不喜欢遍历》

\n
\n

在 Pyramid 中,遍历是将 URL 路径解析为资源树中的资源对象的行为。有些人对这种想法感到不舒服,并认为这是错误的。值得庆幸的是,如果您使用 Pyramid 并且不想根据资源树对应用程序进行建模,则根本不需要使用它。而是使用 URL 调度将 URL 路径映射到视图。

\n

关系数据库并不是自然分层的,因此不可能像树一样遍历数据库。

\n

您可以放心,如果您不想了解遍历,则不必了解。您只需 URL 调度就可以愉快地构建 Pyramid 应用程序。

\n
\n

摘自资源

\n
\n

资源是一个对象,代表与您的应用程序相关的树中的\n“位置”。(...) 资源树是一组嵌套的类似字典的对象,您可以使用它们来表示网站的结构。

\n

在使用遍历将 URL 映射到代码的应用程序中,\n大量使用资源树结构将每个 URL 映射到\n可调用视图。使用遍历时,Pyramid 将通过遍历资源树的嵌套字典结构来遍历资源树,\n以便找到上下文资源。一旦找到上下文资源,\n请求中的上下文资源和数据将用于查找\n可调用视图。

\n

在使用 URL 分派的应用程序中,资源树仅\n间接使用,并且通常对开发人员“不可见”。(...)此根资源有时附加有安全声明,但不要求有任何声明。一般来说,资源树在使用 URL 调度的应用程序中不如使用遍历的应用程序那么重要。

\n
\n

我认为文档中广泛涵盖了该主题。

\n\n

我曾经推荐过一个强调Pyramid\xe2\x80\x99s能力的项目。

\n\n

我的拙见:您不需要预先完全理解这两个概念,就可以在您的第一个项目中采用 Pyramid 框架。使用关系数据库时,请使用 URL Dispatch 和 SQLAlchemy。

\n

摘录 - 金字塔提供了太多的“轨道”

\n
\n

从设计上来说,Pyramid 并不是一个特别固执己见的 Web 框架。Pyramid 提供了一些其他 Web 框架没有的功能。这些功能适用于用例,如果您正在构建一个简单的 (...) Web 应用程序,这些功能可能对您来说没有意义。

\n
\n