Frameworks 您是否需要一个框架来为web编写Ruby或Python代码?

Frameworks 您是否需要一个框架来为web编写Ruby或Python代码?,frameworks,Frameworks,每次我看到在web开发环境中讨论Ruby或Python时,都会用到一个框架(Rails for Ruby,Django for Python)。这些框架是否必要?如果不是,那么这些语言为什么经常在一个框架中使用,而Perl和PHP却不是呢?我只能说Ruby——但是,不,在web上运行基于Ruby的页面不需要框架。您确实需要一个支持ruby的服务器,比如运行eruby/erb的Apache。但是,一旦您这样做了,您就可以创建.rhtml文件,就像RoR一样,它在RoR中处理内联ruby代码 “需要

每次我看到在web开发环境中讨论Ruby或Python时,都会用到一个框架(Rails for Ruby,Django for Python)。这些框架是否必要?如果不是,那么这些语言为什么经常在一个框架中使用,而Perl和PHP却不是呢?

我只能说Ruby——但是,不,在web上运行基于Ruby的页面不需要框架。您确实需要一个支持ruby的服务器,比如运行eruby/erb的Apache。但是,一旦您这样做了,您就可以创建.rhtml文件,就像RoR一样,它在RoR中处理内联ruby代码

“需要”是一个强有力的词。您当然可以编写Python,但我不想这样做

Python并没有被设计成一种直接的web脚本语言(比如PHP),所以像连接数据库这样的常见web语言不是本地语言,框架也很方便


EDIT:Apache中存在mod_python,因此如果您只是想编写一些脚本,那么python不需要框架。如果你想建立一个完整的网站,我建议你使用一个。

这些开发框架绝对不是必需的。但是,与大多数开发环境一样,如果您有一个受支持的框架来引用和构建应用程序,您的生产率将成倍提高。如果其他人已经对您使用的框架有了基本的了解,那么它还可以减少培训,使他们能够快速了解您的应用程序。

任何可以“打印”的语言都可以用于生成网页,但框架可以为您处理大量HTML生成。它们可以让您更多地关注内容,而不是原始HTML的编码细节。

对于python,答案是不,您不必这样做。您可以非常轻松地直接在web服务器后面编写python,请查看mod_python以了解如何编写


很多人喜欢框架,因为它们以可靠的形式提供了大量样板代码,所以您不必自己编写。但是,像任何代码项目一样,您应该根据自己的问题选择工具和框架。

您当然可以用任何一种语言编写CGI脚本,并“原始”地完成任务

这些框架(理想情况下)省去了为其他人已经处理过的事情(会话处理等)编写一堆代码的麻烦

这个决定可能取决于你需要做什么。如果框架具有您需要的功能,为什么不使用它呢。如果该框架需要进行大量修改,那么使用自己的东西可能会更容易。或者看看另一个框架

python库有许多用于执行cgi、解析html、cookies、WSGI等的模块:


至于为什么


我能想到的最合理的事情是,Perl和PHP是在web应用程序使用框架的概念流行之前开发的。因此,“旧”的做事方式在这些文化中根深蒂固。Ruby和Python在框架流行之后开始流行,因此它们一起开发。如果你的语言有一个很好的框架(或者不止一个)并且得到了社区的支持,那么就没有太多理由尝试编写一个没有框架的Web应用程序。

框架本身并不是必需的,但它肯定可以加快开发速度并帮助你编写“更好”的代码。在PHP中,肯定有类似的框架,而在Perl中,也有许多类似和的框架。

这些框架不是必需的。然而,许多开发人员认为框架通过自动化很多事情来简化开发。例如,Django将根据您的数据库结构为您创建一个生产就绪的后端。如果您愿意,它还允许您合并各种插件。我对Rails或Perl框架了解不多,但诸如Zend、Symfony、CodeIgniter、CakePHP等PHP框架被广泛使用


在我工作的地方,我们推出了自己的PHP框架。

简单的回答是不,它们不是必需的。在ruby中,可以使用与使用PHP页面类似的.erb模板。您可以使用多种技术(如框架、模板等Rails,甚至可以直接与HTTP库对话并构建页面CGI样式)用ruby或Python编写站点


像Python的Django或Ruby的Rails这样的Web框架(有很多)只是提高了PHP或ASP的抽象级别,并自动化了几个过程(如登录、数据库交互、REST API),这总是一件好事。

框架?见鬼,如果您使用Python,甚至不需要web服务器,您可以用大约三行代码创建一个。可能比大多数人都多。在Ruby中,大多数人都使用Rails,所以这就是你所听到的,而Django for Python则没有提到。 但是使用PHP,您有很多选择


从Pythonic的角度来看,您绝对希望使用其中一个框架。是的,在没有它们的情况下编写web应用程序是可能的,但它不会很漂亮。以下是一些你(可能)最终会从头开始写的东西:

  • 模板化:除非您正在编写一个非常快速的hack,否则您不希望在Python代码中生成所有HTML——这是一个非常糟糕的设计,会成为可维护性的噩梦

  • URL处理:拆分URL并确定要运行的代码不是一项简单的任务。Django(例如)提供了一种奇妙的机制,可以将一组正则表达式映射到一组视图函数

  • 身份验证:滚动您自己的登录/注销/会话管理代码是一件痛苦的事情,特别是当已经有预编写(和测试)的代码可用时

  • 错误处理:框架已经有了一个很好的机制,a)帮助你调试你的应用程序,b)帮助重定向到合适的404和500页