当前位置:  开发笔记 > 编程语言 > 正文

Web框架的限制如何

如何解决《Web框架的限制如何》经验,为你挑选了3个好方法。

这是关于如何限制Web开发框架(如Django和ruby-on-rails)的一般性问题.

我打算构建一个RESTful Web服务,它将具有纯JSON/XML接口,没有GUI.该服务将依赖于数据库,但是对于一些更重要的操作,没有明确的方法将"模型"对象直接保存到数据库表中.此外,我需要完全控制何时以及如何将数据写入数据库.我将需要维护多个数据库连接,以便仅将某些连接用于读取,而将其他连接仅用于写入.

我已经看过了"完整的"MVC框架,比如Django和更基本的框架,比如web.py和pylons.我目前的印象是,如果我最初使用完整的框架,事情会变得更快,但最终我会陷入困境,因为我会受到框架的限制.如果我使用更基本的框架,将一切运行需要更长的时间,但我可以自由地做我需要的.

这就是它的样子,但我怀疑,考虑到有多少网站是用Django和Rails编写的,这可能是一个错误的印象.你能否提出你的意见?我完全错了,有一种方法可以轻松地使用像Django或Rails这样的框架做任何事情,或者根据我的要求我应该使用像web.py这样的东西?

谢谢!



1> ShZ..:

Web框架倾向于围绕构建网站进行优化,使大多数正常用例更容易实现.一旦你开始用框架做更多"开箱即用"的东西,你可能会发现你花更多的时间在它周围工作然后你首先使用它来保存它.

这里很难概括(特别是因为我真的只和Django一起工作过),所以我会根据自己使用Django开发JSON API的经验提供一些建议:

简单来说,我不建议使用Django编写REST API.根据我自己的经验,我真的没有找到任何值得写回家的东西.我不需要Django的模板系统,所以我真正使用的是URL调度和ORM.即便如此,我还是必须做一些黑客才能让URL调度员做我想做的事情 - 如果我没有使用其他功能,事实上使用不同的URL系统会更快.在你的情况下,Django的ORM甚至不适用,因为它不支持多个数据库(除非你使用的是1.2 alpha ...).由于Django缺乏良好的启动信号,Django开始看起来非常糟糕.

如果我在你的鞋子里,我会去挖掘我需要的特定库(ORM,WSGI等),并且只是使用它们,而不是试图弯曲和锤击Django以满足我的需求.

在完全不同的说明中,您可能希望将Tornado看作可能的HTTP前端.这既简单又快捷.



2> Alex Martell..:

大多数网站都非常适合像Rails或Django这样的丰富框架 - 但是你正在构建一个Web 服务,并且有着截然不同的权衡.

就个人而言,我更喜欢使用非常轻量级的Web服务框架:在Python中,这意味着主要依赖于WSGI(这是一个标准,而不是框架),只需要最少的高度模块化组件来提供我可能需要的一些附加功能.关于服务的细节(WSGI非常擅长允许模块化组合"中间件"的碎片).

我个人最喜欢的模块化WSGI组件集合是Werkzeug,WebOb用于请求和响应对象; 如果我需要模板,这些天,我倾向于使用Django模板,如果我需要一个关系数据库,我更喜欢直接编写SQL(虽然SQLAlchemy有它的优点! - ).

但是使用模块化组件而不是集成框架的一个很酷的事情是,您可以更改这些选项中的每一个(并根据您的确切需求,偏好和品味随意混合搭配! - ).



3> Tor Valamo..:

即使您也使用框架,您仍然可以充分发挥相关语言的潜力.框架不是限制因素,它基本上是一种简化应用程序某些部分开发的工具.例如,Django和rails抽象出一些数据库功能,因此您只需要担心模型对象.这并不意味着你也不能自己做事......

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有