我知道那里有很多Python框架.你们能指出我正确的方向吗?我主要关注的是简单性,我不需要很多无关的功能.以下是我想要(或不想要)的其他几件事:
不关心ORM,只是想让它与MySQL一起工作
有可配置的路线
支持布局
massimo.. 44
web2py是265K字节的源代码和1.2MB全包(与4.6MB的Django相比).然而,web2py将完成您所需的一切(管理会话,cookie,请求,响应,缓存,国际化,错误/票证,GAE,SQLite,MSSQL,MySQL,Postgres,Oracle,FireBird等的数据库抽象).它不需要安装 - 只需解压缩并单击它 - 您就可以在浏览器中进行开发了.
Web2py有路由和反向路由.
Web2py具有分层模板系统,这意味着视图可以扩展可以扩展另一个布局的布局等.视图还可以包括其他视图.
web2py是265K字节的源代码和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如果您希望能够将一些代码与模板混合使用.您甚至可以使用Deliverance来控制由多个应用甚至多种语言组成的页面布局!
一个完整的堆栈Web框架很不错,因为它为您做出了很多选择,让您只关注您的建筑应用程序.但是,我上面列出的选择是一个很好的集合,可以让你自己建立.如果你沿着这条路走下去,你会发现如果你需要它可以很容易地插入Beaker进行缓存和会话,或者WebError可以帮助你进行调试.
就个人而言,我是ORMs的忠实粉丝(特别是SQLAlchemy),但是如果你想要自由和轻量级的ORM,你就无法结合Python中可用的优秀WSGI组件.
给web.py一试.它非常简单,可以提供您正在寻找的极简主义.
主塔.
它比django好多了,并没有带有糟糕的ORM.
人们已经就Web应用程序框架给出了很多答案,但MVC(或任何其他范例)并不仅限于Web.这只是为了清晰起见.
如果你是关于普通的MVC,那么Pylons就会以更严格的方式符合范式.Django解释MVC,他们称之为模型 - 模板 - 视图,但角色分离的想法是相同的.实际的选择是个人品味的问题,虽然这两个都没有我认为轻量级(Pylons可能看起来更轻,但实际上不是,最近Django收集了一些额外的重量 - 很可能你甚至不适合像个人博客这样的小应用程序20MB驻留内存).
当然,没有什么能阻止你编写自己的框架,例如.与WebOb.你可以把它作为光,只要你想(和学习很多东西尝试).
如果你想要一些简单的东西,而不必制作自己的框架,同时仍然不是全包(django),你可能想尝试CherryPy.它几乎可以使用任何调度程序(页面处理程序/ URL路由系统).您还必须选择自己的模板引擎,Genshi是我的最爱.
在桌面应用程序方面,Dabo是一个不错的选择.它是wxPython之上的跨平台框架,支持MySql,Postgresql,Firebird和Sqlite.
checkout https://github.com/salimane/bottle-mvc或https://github.com/salimane/flask-mvc.它们是可以让您开始使用控制器的模板,模型位于不同的文件夹中.它们基于瓶子和烧瓶微框架,没有任何无用的功能,它们可以灵活地插入您想要的任何模块.
你想要web2py.核实:
不关心ORM,只是想让它与MySQL一起工作
Web2py没有ORM,但它确实有一个SQL语法包装器,这使得SQL更容易实现.
有可配置的路线
支持布局
... web2py有这两个.
并且web2py比django/rails /更轻巧,无论如何都是如此.这很容易学习.学习MVC框架最困难的事情是脚本,ORM和(使用django)模板语言.但是web2py摆脱了脚本,简化了ORM,而模板语言只是一种巧妙的方式.