it-swarm.cn

什么是一个很好的轻量级Python MVC框架?

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

  • 不关心ORM,只是想让它与MySQL一起工作
  • 有可配置的路线
  • 支持布局
71
jon

web2py 是265K字节的源代码和1.2MB全包(与4.6MB的Django相比)。然而,web2py将完成您所需的一切(管理会话,cookie,请求,响应,缓存,国际化,错误/票证,GAE,SQLite,MSSQL,MySQL,Postgres,Oracle,FireBird等的数据库抽象)。它不需要安装 - 只需解压缩并单击它 - 您就可以在浏览器中进行开发了。

Web2py有路由和反向路由。

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

44
massimo

既然你明确地不想要ORM,那么如果我是你,我会远离“完整堆栈”框架。 Python的WSGI标准为您提供了大量易于使用的选项,它们将为您提供所需的功能,甚至让您选择自己的工作方式。

下面是一个示例:对于URL调度,您可以使用 Routes ,这些端口通过Rails的URL调度样式。或者您可以将 选择器WebOb组合 如果该样式更适合您。

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

一个完整的网络框架很好,因为它为你做了很多选择,让你只关注你的建筑应用程序。但是,我上面列出的选择是一个很好的集合,可以让你自己建立。如果你沿着这条路走下去,你会发现很容易插入 Beaker 用于缓存和会话,如果你需要它们,或者 WebError 来帮助你进行调试。

就个人而言,我是ORM的忠实粉丝(特别是 SQLAlchemy ),但是如果你想要免费且轻量级的ORM,你就无法结合Python中可用的优秀WSGI组件。

31
Kevin Dangoor

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

11
Dimitry Z

挂架。

它比Django好多了,而且没有糟糕的ORM。

9
habnabit

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

如果你是关于普通的MVC,那么Pylons就会以更严格的方式符合范式。 Django解释MVC,他们称之为 model-template-view ,但角色分离的想法是一样的。实际的选择是个人品味的问题,虽然我认为这两个都不是 lightweigth (Pylons可能看似 更轻 ,但事实上并非如此,最近Django收集了一些额外的重量 - 大多数可能你甚至不适合像20MB常驻内存中的个人博客这样的小应用程序。

当然,没有什么能阻止你编写自己的框架,例如。与 WebOb 。您可以根据需要将其设为 light (并学习许多尝试)。

8
zgoda

结帐 https://github.com/salimane/bottle-mvchttps://github.com/salimane/flask-mvc 。它们是可以让您开始使用控制器的模板,模型位于不同的文件夹中。它们基于瓶子和烧瓶微框架,没有任何无用的功能,它们可以灵活地插入您想要的任何模块。

6
Salimane Adjao Moustapha

如果你想要一些简单的东西,而不必自己创建 框架 ,同时仍然不是全包(Django),你可能想尝试 CherryPy 。它几乎可以使用任何 调度程序 (页面处理程序/ URL路由系统)。您还必须选择自己的模板引擎, Genshi 是我最喜欢的。

6
alif

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

6
uwe

你想要web2py。核实:

  • 不关心ORM,只是想让它与MySQL一起工作

Web2py没有ORM,但它确实有一个SQL语法包装器,可以更容易地执行SQ​​L。

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

... web2py有这两个。

并且web2py比Django/Rails更轻巧,无论如何都是如此。这很容易学习。学习MVC框架最困难的事情是脚本,ORM和(使用Django)模板语言。但是web2py摆脱了脚本,简化了ORM,而模板语言只是一种巧妙的方式。

5
toomim

Django的!

Google App Engine使用它。

我也用它来做我自己的宠物项目。

4
Graviton

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

4
Gabriel Ross

web2py的! Django称控制器为视图,'nuf说。

3
why

如果你想简单使用web2py或pylons。 Django很好......但学习曲线很陡峭

3
BasicGuy

Django的。你没有 has 使用附加功能,而且它设计得很好,所以你可以根据需要混合匹配第三方库。

2
John Millikin

我会看看 Pylons ;它重量轻,速度快。

2
tholo

我也在Django船上。以下是一些原因:

2
Ross

我是Python的新手,但我尝试了几个,特别是Django和web2py。我喜欢web2py的简单性,我能够在几天内创建一个中等复杂度的网站。它有一套不完整的功能,包括DAL,代码生成,HTML hlpers,对我而言,最重要的功能是网站中的文档非常完整。

2
user10917

Django 是我的推荐。

你可以在这里找到 介绍 (Jacob Kaplan-Moss的Google Tech Talk):

你可能还想看看 Adrian Holovaty在Snakes and Rubies的演讲 ,德保罗大学:

0
Nolan Evans