中间件通俗理解

1.百度百科 中间件的解释:

中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。

2.通俗理解:

将具体业务和底层逻辑解耦的组件。

大致的效果是:需要利用服务的人(前端写业务的),不需要知道底层逻辑(提供服务的)的具体实现,只要拿着中间件结果来用就好了。


举个例子1:

我开了一家炸鸡店(业务端),然而周边有太多屠鸡场(底层),为了成本我肯定想一个个比价,再综合质量挑选一家屠鸡场合作(适配

不同底层逻辑)。由于市场变化,合作一段时间后,或许性价比最高的屠鸡场就不是我最开始选的了,我又要重新和另一家屠鸡场合作,进货方式、交

易方式等等全都要重来一套(重新适配)。

然而我只想好好做炸鸡,有性价比高的肉送来就行。于是我找到了一个专门整合屠鸡场资源的第三方代理(中间件),跟他谈好价格和质量后(统一接

口),从今天开始,我就只需要给代理钱,然后拿肉就行。代理负责保证肉的质量,至于如何根据实际性价比,选择不同的屠鸡场,那就是代理做的事了。


举个例子2:

处在服务业务与用户应用中间的软件; 用来做业务解耦的。

比如你有一个手机,要给你朋友。然后你亲自找到你朋友,亲自走过去,给你朋友手机,没有其他参与,这是第一种。

第二种方式,用中间件

那么,你可以叫一个你信任的人送过去,

比如快递员。

这个快递员就充当中间件的角色。

好处:把技术与业务一定程度的分割了


### Flask框架入门介绍 Flask 是一个基于 Python 的轻量级 Web 应用程序框架,它通过提供一组工具、库和结构来帮助开发者更高效地构建 Web 应用程序[^1]。它的核心设计理念是保持简洁性和灵活性,允许开发者自由选择所需的组件和技术栈。 #### 基本概念 Flask 提供了一个简单的接口用于定义路由(Route),即 URL 和处理函数之间的映射关系。这种机制使得开发者可以轻松地将特定的 HTTP 请求与相应的业务逻辑关联起来。例如,在 Flask 中可以通过装饰器 `@app.route()` 来定义路由[^2]: ```python from flask import Flask app = Flask(__name__) @app.route('/flask') def hello_flask(): return 'Hello Flask' ``` 在这个例子中,当客户端访问 `/flask` 路径时,服务器会返回字符串 `'Hello Flask'`。 --- ### 工作原理 Flask 的工作流程主要依赖于 WSGI(Web Server Gateway Interface)。WSGI 是一种标准协议,规定了 Web 服务器如何与应用程序交互。以下是 Flask 处理请求的主要过程: 1. **接收请求**:Web 服务器接收到用户的 HTTP 请求后将其传递给 Flask 应用。 2. **匹配路由**:Flask 将请求路径与已注册的路由规则逐一比较,找到对应的视图函数。 3. **调用视图函数**:一旦匹配成功,Flask 执行该视图函数并获取其返回值作为响应内容。 4. **发送响应**:最后,Flask 构造完整的 HTTP 响应并将数据返回给客户端。 为了运行 Flask 应用,通常使用内置的开发服务器(仅适用于测试环境)或者部署到生产级别的 WSGI 容器(如 Gunicorn 或 uWSGI)。 ```python if __name__ == '__main__': app.run() ``` 上述代码片段展示了如何启动 Flask 内置的调试模式下的开发服务器。 --- ### 设计原则 Flask 遵循的核心设计原则包括但不限于以下几点: - **简约性**:不强制绑定任何外部扩展或数据库支持,让开发者能够完全掌控项目架构的选择。 - **可扩展性**:提供了丰富的插件生态系统,方便集成第三方功能模块,比如表单验证、身份认证等服务[^1]。 - **灵活性**:允许自定义配置项以及中间件链路调整,满足不同场景下复杂需求的支持能力。 综上所述,Flask 不仅为初学者降低了学习门槛,同时也为高级用户提供足够的定制空间去实现复杂的业务目标。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值