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

时间:2008-10-06 16:10:10

标签: frameworks

每当我看到在Web开发环境中讨论的Ruby或Python时,它总是使用一个框架(Rails for Ruby,Django for Python)。这些框架是否必要?如果没有,是否有理由为什么这些语言经常在框架内使用,而Perl和PHP不是?

14 个答案:

答案 0 :(得分:4)

我只能谈论Ruby - 但是,不,你不需要一个框架来在网上运行基于Ruby的页面。您确实需要启用ruby的服务器,例如运行eruby / erb的Apache。但是,一旦你这样做,就可以像RoR一样创建.rhtml文件,在那里它处理内联ruby代码。

答案 1 :(得分:3)

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

Python并不是设计用(例如PHP),而是直接的Web脚本语言,因此连接到数据库等常见的Web事物不是原生的,框架也很方便。

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

答案 2 :(得分:3)

简短的回答是否定的,没有必要。在ruby中,你有.erb模板,可以像使用PHP页面一样使用。您可以使用多种技术(类似Rails的框架,模板甚至直接与HTTP库交谈并构建页面CGI样式)以ruby或Python编写站点。

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

答案 3 :(得分:3)

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

  • 模板:除非你写的是非常快速的黑客,否则你不想在你的Python代码中生成所有的HTML - 这是一个非常糟糕的设计,变成了可维护性的噩梦。 / p>

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

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

  • 错误处理:框架已经有了一个很好的机制来a)帮助您调试应用程序,以及b)帮助重定向到正确的404和500页。

除此之外,所有框架库都经过严格测试(并经过防火测试)。此外,还有一些人正在使用相同的代码库开发,所以如果您有任何问题,您可以找到帮助。

总而言之,您没有必要,但除非您的项目是“新的网络框架”,否则您可能最好使用现有的一个。

答案 4 :(得分:2)

框架?哎呀,如果你使用的是Python,你甚至不需要Web服务器,你可以在大约三行代码中创建一个。

答案 5 :(得分:1)

关于为什么

我能想到的最可信的事情是Perl和PHP是在使用Web应用程序框架的概念变得流行之前开发的。因此,“旧的”做事方式在这些文化中停滞不前。 Ruby和Python在框架变得流行之后变得流行,因此它们一起开发。如果您的语言具有良好的社区支持框架(或多个框架),则没有太多理由尝试在没有框架的情况下编写Web应用程序。

答案 6 :(得分:1)

框架本身并不是必需的,但它肯定可以加速开发并帮助您编写“更好”的代码。在PHP中,肯定有像CakePHP一样使用的框架,在Perl中有很多像MasonCatalyst一样。

答案 7 :(得分:1)

框架不是必需的。但是,许多开发人员认为框架通过自动化很多东西来简化开发。例如,Django将根据您的数据库结构为您创建一个可用于生产的后端。如果您愿意,它还允许您合并各种插件。我不太了解Rails或Perl框架,但是Zend,Symfony,Code Igniter,CakePHP等PHP框架被广泛使用。

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

答案 8 :(得分:1)

  

这些框架是否必要?

没有。与任何“框架”一样,它们只是为了加快开发时间并使程序员的工作更轻松。

  

如果没有,是否有理由在框架中经常使用这些语言,而Perl和PHP则不然?

在使用框架的想法之前,PHP和Perl是用于构建网站的流行语言。像Rails这样的框架正是Ruby所追随的。在框架支持之前,我不确定Python或Ruby是否像Web语言一样常见。

现在,甚至PHP / Perl Web开发也应该得到一个框架的支持(现在有很多框架)。

答案 9 :(得分:0)

这些开发框架绝不是必需的。但是,与大多数开发环境一样,如果您有一个支持的框架来引用和构建您的应用程序,您的工作效率将呈指数级增长。如果他们已经对您使用的框架有一个核心的了解,那么它还会减少让其他人加快应用程序所需的培训。

答案 10 :(得分:0)

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

答案 11 :(得分:0)

对于python,答案是否是你没必要的。您可以非常轻松地直接在Web服务器后面编写python,看看mod_python是如何做到的。

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

答案 12 :(得分:0)

您当然可以使用任何一种语言编写CGI脚本并执行“原始”操作。

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

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

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

http://docs.python.org/library/index.html

答案 13 :(得分:0)

PHP有很多框架。可能比大多数都要多。在Ruby中,大多数人都使用Rails,这就是你所听到的内容,而Django for Python则更多地被提及。 但是使用PHP,你有很多选择。

List of web application frameworks