关于模型视图控制器:什么是好的轻量级Python MVC框架?

关于模型视图控制器:什么是好的轻量级Python MVC框架?

What's a good lightweight Python MVC framework?

我知道那里有大量的Python框架。 你们能指出我正确的方向吗? 我主要关心的是简单性,我不需要很多多余的功能。
这是我想要(或不想要)的其他几件事:

  • 不在乎ORM,只希望它与MySQL一起使用
  • 具有可配置的路线
  • 支持布局

web2py是265KB的源代码,包含1.2MB(包括4.6MB的Django)。但是web2py可以满足您的所有需求(管理会话,cookie,请求,响应,缓存,国际化,错误/票证,GAE,SQLite,MSSQL,MySQL,Postgres,Oracle,FireBird等的数据库抽象)。不需要安装-只需解压缩并单击它-您就可以在浏览器中进行开发。

Web2py同时具有路由和反向路由。

Web2py具有分层模板系统,这意味着视图可以扩展布局,可以扩展其他布局,等等。视图还可以包括其他视图。


由于您明确不想使用ORM,因此如果您是我,我将远离"全栈"框架。 Python的WSGI标准为您提供了大量易于使用的选项,这些选项将为您提供所需的功能,甚至让您选择自己的工作方式。

这是一个示例:对于URL分配,您可以使用Routes,它通过Rails的URL分配样式进行移植。或者,如果该样式更适合您,则可以将Selector与WebOb结合使用。

对于"布局",如果您想要无法运行代码的模板,则可以使用功能强大的Jinja2。或者,Mako,如果您希望能够在模板中混入一些代码。您甚至可以使用"投放"来控制由多种应用甚至多种语言组成的页面的布局!

全栈式Web框架很不错,因为它可以为您做出很多选择,让您只关注建筑物中的应用程序。但是,我上面列出的选择是一个很好的集合,可以帮助您逐步构建自己的选择。如果沿着这条路走,您会发现很容易插入Beaker进行缓存和会话(如果需要),或者使用WebError来帮助您进行调试。

就个人而言,我是ORM(尤其是SQLAlchemy)的忠实拥护者,但是如果您希望整体上实现ORM免费和轻量级,那么您就无法与Python中强大的WSGI组件相结合。


尝试一下web.py。它非常简单,可以提供您正在寻找的极简主义。


主塔。

它比django好得多,并且没有附带糟糕的ORM。


人们已经给出了许多有关Web应用程序框架的答案,但是MVC(或任何其他范例)并不仅仅局限于Web。这只是为了清楚起见。

如果您是关于普通MVC的,则Pylons以更严格的方式符合范式。 Django解释了MVC,他们将其称为model-template-view,但是角色分离的思想是相同的。实际的选择取决于个人喜好,尽管我都不认为这两个都是轻巧的(塔架看起来较轻,但实际上并非如此),最近Django增加了一些额外的重量-最有可能的是,即使像个人博客中的小应用程序一样,您也不适合20MB常驻内存)。

当然,没有什么可以阻止您编写自己的框架,例如。与WebOb。您可以根据需要使其变轻(并学习许多尝试的方法)。


对于桌面应用程序,Dabo是一个不错的选择。它是基于wxPython的跨平台框架,支持MySql,Postgresql,Firebird和Sqlite。


检出https://github.com/salimane/bottle-mvc或https://github.com/salimane/flask-mvc。它们是样板,可以帮助您开始使用控制器和单独文件夹中的模型。它们基于瓶和瓶的微型框架,没有无用的功能,它们使您可以灵活地插入所需的任何模块。


如果您想要简单的东西,而不必创建自己的框架,同时又不包含所有内容(django),则可以尝试使用CherryPy。它几乎可以使用任何调度程序(页面处理程序/ URL路由系统)。您还必须选择自己的模板引擎,Genshi是我的最爱。


您想要web2py。核实:

  • 不在乎ORM,只希望它与MySQL一起使用

Web2py没有ORM,但是它确实具有基于SQL的语法包装,这使得执行SQL变得容易得多。

  • 具有可配置的路线
  • 支持布局

... web2py兼有这些。

和web2py相比django / rails /更轻便,几乎所有方面都如此。非常容易学习。学习MVC框架最困难的事情是脚本,ORM和(使用django)模板语言。但是web2py摆脱了脚本,简化了ORM,并且模板语言只是python的一种巧妙的方式。


是的,我想说的是Django绝对是要走的路。它的模块化设计确保您可以混合和匹配组件(ORM,模板引擎,URL分配等),而不是被框架提供的组件所困扰,您可以将其替换为任何第三者。


Django的!

Google App Engine使用它。

我也将其用于自己的宠物项目。


如果您想简化操作,请使用web2py或pylons。 Django很好...但是学习难度很大


web2py的! dnugo称控制器为视图。


Django的。您不必使用其他功能,它的设计很好,因此您可以根据需要混合使用nrd-party第三方库。


我对Python真的很陌生,但是我尝试了一些安静的方法,特别是Django和web2py。
我喜欢web2py的简单性,几天之内就可以创建一个中等复杂性的网站。
它具有一套不必要的功能,包括DAL,代码生成,HTML hlpers,对我而言,最重要的功能是站点中的文档非常完整。


我也在Django船上。原因如下:

  • 您可能会使用Django的管理界面节省时间,避免手动查询。
  • Django的模板系统很棒
  • Django有一个WONDERFUL社区,非常渴望提供帮助(请参阅freenode上的#django)


我来看看塔架;它轻巧,快速。


我建议使用Django。

您可以在此处找到其简介(Jacob Kaplan-Moss的Google技术讲座):

您可能还想看看DePaul大学Snakes and Rubies上Adrian Holovaty的演讲:


尽管并非所有的Python框架都明确支持MVC,但创建一个使用MVC模式的网站通常很简单,方法是将数据逻辑(模型)与用户交互逻辑(控制器)和模板(视图)分开。

http://docs.python.org/howto/webservers.html#model-view-controller


推荐阅读