每当我看到Ruby或Python在Web开发的上下文中讨论时,总会有一个框架(Rails for Ruby,Django for Python)。这些框架是否必要?如果没有,那么为什么这些语言经常在框架内使用,而Perl和PHP不是这样吗?你需要一个框架来为Web编写Ruby或Python代码吗?
回答
简短的回答是不,他们没有必要。在ruby中,您有.erb模板,可以使用与您使用PHP页面相似的方式。您可以使用多种技术(Rails-like框架,模板甚至直接与HTTP库交谈并构建页面CGI风格)以ruby或Python编写网站。
像Python的Django或Ruby's Rails这样的Web框架(有很多)只是提高了PHP或ASP的抽象级别,并且自动化了几个过程(如登录,数据库交互,REST API),这总是一件好事。
我只能对Ruby说话 - 但是,不,您不需要一个框架来在Web上运行基于Ruby的页面。你确实需要一个支持ruby的服务器,例如运行eruby/erb的Apache。但是,一旦你这样做了,你就可以像创建RoR一样创建.rhtml文件,在那里它处理内嵌的ruby代码。
“极品”是一个强词。你当然可以写一个Python,但我不想。
Python并没有被设计成像直接的Web脚本语言那样,所以像连接数据库这样常见的web-ish事物并不是原生的,而且框架非常方便。
编辑:mod_python存在Apache,所以如果你只是想写一些脚本,那么Python不需要框架。如果你想建立一个完整的网站,我建议使用一个。
绝对不是那些需要的开发框架。但是与大多数开发环境一样,如果您有支持的框架来引用和构建应用程序,那么您的生产力将呈指数级增长。如果他们已经对您使用的框架有了核心理解,它还会减少需要让其他人加快应用程序的培训。
任何可以“打印”的语言都可以用来生成网页,但框架可以为您处理大量的HTML代。它们让您更专注于内容,更少关注编码原始HTML的细节。
对于python,答案是否定的,你不需要。你可以很容易地在你的web服务器后面直接编写python,看看mod_python如何做到这一点。
很多人喜欢框架,因为它们以可靠的形式提供了大量的样板代码,所以您不必亲自编写代码。但是,像任何代码项目一样,您应该根据自己的问题选择工具和框架。
你当然可以用任何一种语言编写CGI脚本,并且做一些“原始”的事情。
框架(理想情况下)节省了为其他人已经处理的事情(会话处理等)编写一堆代码的麻烦。
这个决定可能归结为你需要做的事情。如果框架具有您需要的功能,为什么不使用它。如果框架需要大量修改,那么推出自己的东西可能会更容易。或者查看一个不同的框架。
Python库有这样做的CGI众多模块,解析HTML,饼干,WSGI等:
至于为什么:
最合理的事情,我能想到的Perl和PHP是在Web应用程序的框架变得流行之前开发的。因此,“旧”的做事方式一直存在于这些文化中。在框架变得流行后,Ruby和Python变得流行,因此它们一起发展起来。如果你的语言有一个良好的社区支持的框架(或多个),没有太多的理由尝试编写一个Web应用程序没有一个。
框架是没有必要的。然而,很多开发人员认为框架通过自动化很多事情来缓解开发。例如,Django将根据您的数据库结构为您创建一个适用于生产的后端。它也可以让你整合各种插件,如果你选择。我不太了解Rails或Perl框架,但PHP框架(如Zend,Symfony,Code Igniter,CakePHP等)被广泛使用。
我在我们工作的地方推出了我们自己的PHP框架。
框架?哎呀,如果你使用Python,你甚至不需要Web服务器,你可以在三行代码中创建一个。
PHP有很多框架。可能多于大多数。在Ruby中,大多数情况下使用Rails,因此您所听到的,以及Django for Python被提及的更多。 但是用PHP你有很多选择。
从一个Python的点,你绝对要使用的框架之一。是的,也许可以在没有它们的情况下编写一个Web应用程序,但它不会很漂亮。以下是您(可能)结束了从头开始编写的几件事情:
模板:除非你写一个非常非常快的黑客,你不希望被产生内所有的HTML的你Python代码 - 这是一个非常糟糕的设计,成为可维护性的噩梦。
URL处理:拆分URL并标识要运行的代码不是一项简单的任务。 Django(例如)提供了一个绝妙的机制,可以从一组正则表达式映射到一组视图函数。
验证:滚动自己的登录/注销/会话管理代码是一种痛苦,尤其是当有已经预先写好的(和测试)提供代码
错误处理:框架已经到位了良好的机制到a)帮助您调试您的应用程序,并b)帮助重定向到正确的404和500页面。
为了补充说明,所有框架库都经过严格测试(并经过防火测试)。此外,还有一些人正在开发使用相同代码库的社区,所以如果您有任何问题,您可能会找到帮助。总之,你不必这样做,但是除非你的项目是“一个新的Web框架”,否则你最好使用其中一个现有的框架。
您当然可以使用单独的无关的库模块完成所有这些任务;您不一定必须使用总体框架来控制该地块。较低级别的WSGI标准使我们足以将这些组件粘合在一起。 – bobince 2008-11-10 13:40:43
这些框架是必需的吗?
不,他们像任何'框架'一样,只是为了加快开发时间,让程序员的工作更轻松。
如果不是,那么这些语言经常在框架内使用,而Perl和PHP不是这样吗?
在使用框架的想法之前,PHP和Perl是构建Web站点的流行语言。像Rails这样的框架是Ruby给予的。我不确定Python或Ruby在被框架支持之前是否像Web语言那样常见。
现在,甚至PHP/Perl Web开发应该由一个框架(现在有很多)支持。
- 1. 我需要一个域名来编写Java代码吗?
- 2. 你需要一个用ruby创建一个基本框架?
- 3. Python POST JSON - 是否需要Web框架?
- 4. 需要一些帮助来编写一个Python脚本
- 5. Maven - 你需要一个主要的项目来作为一个图书馆吗?
- 6. 我需要更改一个框架的源代码冠军hipped
- 7. 为什么你需要编码URL?
- 8. 如何编写一个web框架作为学习体验
- 9. 你会如何在Ruby和/或Haskell中编写这个Clojure代码片段?
- 10. 在哪个文件我需要编写代码为Symfony2的
- 11. 最佳的Python Web框架为我的API服务器需要
- 12. 我需要一个iOS工具来编码HTML吗?
- 13. 你知道一个处理web基础白板的框架吗?
- 14. 需要学习一些JavaScript代码!你能帮我吗?
- 15. Python:我需要一个代码来自动登录HTTPS网站
- 16. 你需要python来运行python gtk/pyQt应用程序吗?
- 17. 你需要一个mobilel响应库吗?
- 18. 在编写代码编辑器时需要一些建议
- 19. 需要编写Matlab代码来解决下面的等式
- 20. 你是否曾经需要用汇编语言编写真正的代码?
- 21. 需要为这个代码
- 22. 你可以用一个框架的POST来调用表单吗
- 23. 需要一个iOS库或框架的iPhone到Ruby on Rails API交互
- 24. 需要一个jQuery代码:
- 25. 为windows和web编写抽象代码?
- 26. c# - 你需要一个DataTable来从DataAdapter检索数据吗?
- 27. 你需要注册一个对话框吗?
- 28. Bunifu框架:你如何编码进度条? (代码如下)
- 29. 为同一个项目编译不同的代码 - Swift框架
- 30. UDP代码需要重写
哇......很多很好的答案,很难选择一个“接受”,所以我选择了一个足够全面的答案来回答这个问题,并且足以解决我提到的所有语言。感谢大家! – 2008-10-06 16:28:33