首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >金字塔:相当于Python /Python中PHP框架中的MVC?

金字塔:相当于Python /Python中PHP框架中的MVC?
EN

Stack Overflow用户
提问于 2012-02-18 03:29:31
回答 3查看 3.3K关注 0票数 12

像Kohana这样的PHP框架的模型-视图-控制器的金字塔/ Python等价物是什么?

代码语言:javascript
复制
In Pyramid "Model" is .... and it is used for .....
In Pyramid "View" is .... and it is used for .....
In Pyramid "Controller" is .... and it is used for .....

我正在尝试理解金字塔的逻辑。作为对答案的补充,任何帮助、文档等都将不胜感激。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-29 01:33:07

连接成金字塔的两个框架中的一个(另一个是repoze.bfg )与MVC系统“很接近”。

我把引语放在最后,因为在过去的几年里,很多人一直在争论MVC意味着什么……许多曾经吹捧自己为"MVC“的项目开始称它们为"MTC”(模型模板控制器) "MT“(模型模板)或"MV”(模型视图)。每个人都同意“模型”是什么,但在给定的框架上,“视图”和“控制器”到底映射到什么可能是一个争议点。

金字塔和塔架都有一个"dispatcher“功能来设置请求的映射。在pylons下,它在config/routes.py中;在金字塔下,它有一点不同--默认的脚手架在app/init.py中有路由,但你可以自由地将它分解到app/routes.py中,或者使用config.include()将它推入你的“handlers”或config.scan()中,从你的“视图”中取出它。

金字塔中的“处理程序”是由pyramid_handlers提供的,实际上只是一些带有自动生成功能的“视图”。如果您愿意,您的应用程序可以同时使用处理程序和视图(我的是这样做的)。

在任何情况下,根据您如何解释MVC / MTC /等,这是您可能需要的内容的松散表格:

代码语言:javascript
复制
           || mvt            | mvc            | mvc
==========================================================================
model      || sqlalchemy     | sqlalchemy     | sqlalchemy
view       || views/handlers | templates      | views/handlers + templates
controller ||                | views/handlers | dispatch/routing
template   || templates      |                |

快速注意--我不是基于我的解释或者什么是‘官方’MVC定义来定义上面的内容。它基于其他流行框架的营销方式。

票数 21
EN

Stack Overflow用户

发布于 2012-02-18 03:36:22

Pyramid Introduction

你说金字塔是MVC,但是控制器在哪里?

金字塔的作者认为,MVC模式并不能很好地适应web。在一个金字塔应用程序中,有一个资源树和视图,资源树表示站点结构,视图表示存储在资源树中的数据和用户定义的“域模型”。然而,框架提供的任何工具实际上都不一定映射到“控制器”或“模型”的概念。因此,如果你必须给它一些缩写,我猜你会说金字塔实际上是一个“RV”框架,而不是“MVC”框架。然而,为了与其他web框架进行比较,“MVC”作为一个通用的分类绰号已经足够接近了。

票数 5
EN

Stack Overflow用户

发布于 2012-02-22 07:06:49

我有使用CakePHP的经验,现在我开始学习金字塔和Python。没有直接的映射,但这不是因为金字塔以一种奇怪的方式做事情,而是因为框架作者滥用了MVC术语。

例如,在Cake中,有一些他们喜欢称之为“模型”的类,但大多数时候只是ORM类。控制器主要用作名为“操作”的相关方法的命名空间,这些方法将数据传递给视图,视图只是模板。

在金字塔术语中,“资源”就是“模型”,你可以在这里自由地使用你想要的任何地方,如果你想要一个对象关系管理,你可以使用SQLAlchemy,例如mongodb或其他任何地方。

框架本身就像“控制器”,动作被称为“视图”。这可以是普通的函数或类,你可以在任何你喜欢的地方自由组织它们。该视图可以使用模板和呈现器来构造发送到浏览器的响应。

希望能有所帮助(请原谅我糟糕的英语)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9334181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档