ruby-on-rails - 究竟什么是 Web 框架?

标签 ruby-on-rails django frameworks web-frameworks

Web 框架(例如 Django 和 Ruby on Rails)是否只是一种显示可以通过 http 正常编写的代码的方式?还是用于更多服务器端的事情,例如存储数据。它是用作网站的前端还是后端?

最佳答案

让我们谈谈不是 Web 框架的东西。

在最基本的网络级别上,您有一个网页。它通常是一个带有一些文本的哑页面,可能是嵌入的视频或一些图像。它不(或至少在理想情况下不应该)关心它显示的东西来自哪里。您不需要任何脚本、数据库等即可拥有静态网页。使用的典型工具:HTML、CSS、Javascript。

然后你就有了内容管理系统 (CMS),比如 Wordpress。它们为您的站点添加了更多功能,但实际上它们所做的只是为您提供一种管理网页集合的方法——即时创建网页等。您可以按原样使用它们并通过管理与 CMS 交互他们提供的页面。您可以扩展其中的一些(例如,Wordpress 具有插件架构),但您通常不关心它们的工作方式或它们的特定 API。

然后你有网络框架。它们允许您以结构化的方式完成其他所有操作。您不需要有一个框架来创建一个数据库驱动的站点,但它可以提供帮助。框架通过约定为您带来了很多便利。例如,如果您想向您的站点添加一个新部分,您可以创建一个“模块”,将其上传到已知位置,也许更新配置文件,然后它或多或少地将自身连接到您的站点。

该框架可以处理您的数据库详细信息或从其他服务中提取数据(或通过服务提供数据)。它可以根据模板自动为您构建页面。它可以通过 URL 路由“美化”您的链接。它可以帮助您确保您的站点链接永远不会中断 - 通过动态确定页面的位置而不是手动硬编码链接。它们允许您将后端问题(业务逻辑、数据访问、身份验证等)与 View 分开,让您可以根据需要轻松更新页面设计。

为了具体解决您的问题...

  • Web 框架生成通过 HTTP 提供的 HTML 页面。这里没有特别的魔法。您通常可以自己编写相同的页面,但框架允许您,例如,定义一个模板并根据您的需要显示不同的页面,而无需您直接手动参与。
  • Web 框架不存储数据。他们可以访问或提供它,但他们本身并不是任何类型的数据库。 Web 框架位于服务器端,为客户端提供页面并处理客户端的输入。
  • 后端使用 Django 和 Rails 等框架。还有其他框架,如 jQuery,可用于编写客户端事件脚本,但它们不是同一意义上的 Web 框架。通常当有人说“网络框架”时,他们的意思是服务器端。

  • 希望这可以帮助。

    关于ruby-on-rails - 究竟什么是 Web 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3345512/

    相关文章:

    ios - ID警告:找不到选项目录

    css - 使用 css 网格围绕网格边界

    ruby-on-rails - 将开放身份验证登录添加到用户模型时,表结构应该是什么样的

    ruby-on-rails - 基于特定组合的 ruby 计数

    ruby-on-rails - Define_method block 中的条件代码

    python - Django 多对多过滤字段

    mysql - ruby on rails 不正确的默认套接字是/var/run/mysqld/mysqld.sock

    python - ModelMultipleChoiceField 呈现为空的 Django 表单

    django - PyCharm:在选定的解释器中找不到 Sphinx

    cocoa - 将一些代码移动到外部框架(Cocoa)后发生misaligned_stack_error