究竟啥是 Web 框架?

Posted

技术标签:

【中文标题】究竟啥是 Web 框架?【英文标题】:What exactly is a web framework?究竟什么是 Web 框架? 【发布时间】:2011-03-21 16:55:19 【问题描述】:

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

【问题讨论】:

听起来您应该更多地了解什么是 MVC 架构。 Django 和 RoR 都是 MVC 框架。了解使用 MVC 架构的角色和目的将有助于回答您的问题。 en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller 【参考方案1】:

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

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

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

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

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

专门解决您的问题...

    Web 框架生成通过 HTTP 提供的 HTML 页面。这里没有特别的魔法。您通常可以自己编写相同的页面,但框架允许您,例如,定义一个模板并根据您的需要显示不同的页面,而无需您直接手动参与。

    Web 框架不存储数据。他们可以访问或提供它,但他们本身并不是任何类型的数据库。 Web 框架位于服务器端,向客户端提供页面并处理客户端的输入。

    在后端使用 Django 和 Rails 等框架。还有其他框架,如 jQuery,可用于编写客户端活动脚本,但它们不是同一意义上的 Web 框架。通常当有人说“网络框架”时,他们的意思是服务器端。

希望这会有所帮助。

【讨论】:

【参考方案2】:

Web 框架是一种编程环境,可帮助您构建网站和服务。它们通常专注于服务器问题,例如数据库连接、URL 路由、HTTP 协议实现、HTML 生成、表单处理等。有些还有助于解决客户端问题,例如帮助您的 Javascript 代码与服务器端代码无缝协作。

【讨论】:

【参考方案3】:

Web 应用程序框架是一种软件框架,旨在支持动态网站、Web 应用程序和 Web 服务的开发。该框架旨在减轻与 Web 开发中执行的常见活动相关的开销。

取自this页面。

【讨论】:

以上是关于究竟啥是 Web 框架?的主要内容,如果未能解决你的问题,请参考以下文章

究竟啥是数据库模式? [关闭]

彻彻底底给你讲明白啥是SpringMvc!

被广泛应用的 MVC 框架模式究竟有何优势?

通俗易懂,啥是.NET Core以及.NET Core能做啥

框架究竟解决了啥问题?我们可以脱离它们吗?

为啥需要node js,啥是框架