我知道那里有大量的Python框架。你们能指出我正确的方向吗?我主要关心的是简单性,我不需要很多多余的功能。这是我想要(或不想要)的其他几件事:
- 不在乎ORM,只希望它与MySQL一起使用
- 具有可配置的路线
- 支持布局
我知道那里有大量的Python框架。你们能指出我正确的方向吗?我主要关心的是简单性,我不需要很多多余的功能。这是我想要(或不想要)的其他几件事:
Answers:
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应用程序框架的答案,但是MVC(或任何其他范例)并不仅仅局限于Web。这只是为了清楚起见。
如果您是关于普通MVC的,则Pylons以更严格的方式符合范式。Django解释了MVC,他们将其称为model-template-view,但是角色分离的想法是相同的。实际的选择取决于个人喜好,尽管我都不认为这两个都是轻巧的(Pylons看起来较轻,但实际上并非如此),最近Django增加了一些额外的重量-最有可能的是,即使像个人博客中的小型应用程序,您也无法适应20MB常驻内存)。
当然,没有什么可以阻止您编写自己的框架,例如。与WebOb。您可以根据需要使它变轻(并学习许多尝试的方法)。
检出https://github.com/salimane/bottle-mvc或https://github.com/salimane/flask-mvc。它们是样板,可以让您开始使用控制器和单独文件夹中的模型。它们基于瓶和瓶的微框架,没有无用的功能,它们使您可以灵活地插入所需的任何模块。
对于桌面应用程序,Dabo是一个不错的选择。它是wxPython之上的跨平台框架,支持MySql,Postgresql,Firebird和Sqlite。
web2py!dnugo称控制器为视图。
如果您想简化操作,请使用web2py或pylon。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