什么是好的轻量级Python MVC框架?[关闭]


71

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

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


12
您是否不喜欢所有最有趣的问题如何得到解决
Dominic 2014年

Answers:


44

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

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

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


10
它在某些方面是否比Django好,还是它较小的唯一优势?
ripper234 2011年

我不需要安装-只需解压并点击它-你可以在浏览器做开发
goFrendiAsgard

31

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

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

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

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

就个人而言,我是ORM(尤其是SQLAlchemy)的忠实拥护者,但是如果您希望整体上实现ORM免费和轻量级,那么您可以将Python中可用的出色WSGI组件组合在一起。



9

塔架。

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


1
仅仅是因为Django带有(据说)糟糕的OR / M,并不意味着您必须使用所说的OR / M,这要归功于Django的模块化特性。
卢卡斯·琼斯

11
啊哈,继续告诉自己。Django是最常用的单片python网络框架。
哈比人2009年

整个“塔架是金字塔,但不是金字塔”非常令人困惑。而且看来“金字塔”不是用自己的话说是MVC的“ RV”(“资源视图”)。请参阅“您说金字塔是MVC,但控制器在哪里?” 在金字塔文档中。
CmdrTallen

8

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

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

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


6

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



6

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


5

您想要web2py。检查:

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

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

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

... web2py兼有这两个。

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


4

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


改变一个组件都有它的价格。例如:更改ORM或模板会干扰管理界面。
pihentagy

它不会干扰。管理员不是django的一部分,它是一个外部应用程序。不管您使用什么ORM。此外,您不必使用管理员。但是您可以同时运行管理员(将使用django ORM)和另一个ORM。
e-satis

4

Django!

Google App Engine使用它。

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


4

web2py!dnugo称控制器为视图。


4
但是他们的View基本上和MVC控制器是一样的。如果模式仍然是MVC,并且您了解设计,那么命名法真的重要吗?我猜您可能会称其为MTV以遵循Django命名法(模型模板视图),但随后可能会有诉讼。
Neal Stublen'9

3
那么web2py使其成为一个很好的框架呢?请解释,提供示例和/或添加参考。
2012年

3

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


2

Django的。你不具备使用附加功能,它的精心设计让您可以根据需要混用正赛的第三方库。


2

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


2

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




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.