admin 管理员组

文章数量: 887044


2024年1月17日发(作者:企业网站建设论文5000)

《工业控制计算机》2020年第33卷第10期97基于Flask的分布式Web服务架构研究与应用徐

(公安部第三研究所928实验室,上海201210)摘要:研究基于Flask的分布式Web服务研究与应用。目前Python在工业界使用越来越广泛,Python开发Web服务

应用也被越来越多的厂商采用,目前基于Web的框架,有各种语言的服务框架,但是Python语言的生态现在越来越完善,

使用Python语言进行Web服务开发咱1],可以很容易进行相应服务的开发,因为Python生态非常好,相应的应用工具和库也

非常的完善。在加上Nginx代理、MySQL、Mongo、Redis相关的数据库,可以很容易构建一个分布式高可用的Web服务。关键词:Web

服务;Python

Flask基于http的Web服务是一种独立的,与其他服务低耦合

的一种Web应用服务程序,是一种以服务为导向的技术架构,

通过标准的Web协议提供服务,目的是保证不通平台的应用服

务可以互相操作。所以基于http的Web服务开发了我们自己

的应用系统,开发的Web服务,用户只需要浏览器即可访问,无

需要安装其他应用程序,用户使用和操作更加方便。1常见的Python

Web服务框架比较现在,Python的生态非常完善,生态里面有很多开发框架

可以轻松构建Web应用。Web开发框架的意义就在于可以敏

捷地开发和构建应用,而不需要在没必要的技术细节中浪费时

间,可以迅速地开发自己的产品,保证产品的快速产岀。Python的Web框架也有越来越多的厂商开始使用,使用

Python开发和构建自己的产品,如国外知名的YouTube、Insta-

gram、Reditt,国内的有知乎、豆瓣等,都应用到了不同的Python

Web框架。下面就介绍一下Python生态中常见的一些Web框架。常见的

Python

Web

服务框架有:Django、Flask、Tornado、

Web2py

等。1.1

Dja

ngoDjango在Python语言的Web开发框架中,很有代表性和

知名度,Django的名字是来自于一位法国的作曲家和吉他演奏

Django

Reinhardt。Django遵循了

MVC开发模型,M、V、C分别表示:M

ModDl(数据模型,用于定义后端的数据库模型);T

Template(模板,用于定义前端显示信息);V

View(视图,用于接收客户端请求,处理model,渲染返

回给客户端)。优点:Django是一个一站式的开发和解决方案,Django中的各

种WDb组件集成度也非常成熟,配置齐全,内部的数据模型和

对用户操作的权限认证体系健全,0RM数据库管理也比较成

熟,并且有自带的后台管理功能。缺点:Django是一个很重的Web开发框架,系统大而全,庞大的

系统袁复杂的配置袁使得学习成本很高袁对于一些轻应用和一些

需要敏捷开发的产品袁可能并不适用。1.2

Flask相对于Django的大而全的大系统,Flask是基于Werkzeug

工具箱开发的轻量级Web开发框架,主要面向一些功能简单、

需求简单、项目周期比较短的一些轻应用。Flask框架比较灵活,Flask只是完成了

Werkzeug和模板引

擎Jinja基本的核心功能,其他的功能都是由第三方插件完成。优点:Flask的项目结构简单,核心服务比较轻量,配置比较简单,

第三方组件可以自由拆卸,比较适用于小型的项目开发使用。缺点:由于Flask的组件高度自由,全部可以自定义,那么各种组

件自定义带来的组件兼容性问题比较明显,所以需要搭配兼容

的组件版本。1.3

TornadoTornado和Flask

一样,除了基本的处理功能和模板外,其

他的功能组件都需要自行拼装遥优点:Tornado也是一个小巧精悍的Web框架,性能比较好,不

依赖Python多进程多线程,支持异步非阻塞I0处理方式。缺点:Tornado过于精简,所以一般只适用于做一些接口化的服

务和一些微型网站。1.4

Web2pyWDb2py是一个开源框架,它开始是作为工具开发的,它的

目标是去除大量重复开发工作,最开始的源代码是由Massimo

DiPierro在2007年开发的,Web2y和Django

—样,具有广泛

的文档,适用与常规的Web服务开发。优点:作为一个全栈式框架,它无需其他依赖就可以工作,容易部

署。安装无需任何配置文件,下载完成即可使用。安全性也比较岀色,WDb2py的模板语言减少了黑客使用

跨站脚本的危险。会话由于存储在后台服务器上,所以可以防止

页面用户对浏览器中的cookie进行篡改。2

Web服务架构设计通过对每个框架特点的比较,通过对Flask框架在易用性、

学习成本和生态等方面的综合考虑,最后结合我们自己的业务

场景,选取了

Flask作为开发的Web框架。系统总体架构分为三层,第一层是直接面向用户的网关层,

网关层我们选取了

Nginx作为网关层的服务框架,Nginx在处

理网络请求方面具有很好的性能囱,网关层负责直接连接用户,

处理用户发送和接收的请求;第二层为Web服务的API处理

层,这一层主要是处理与API接口相关的逻辑,我们选择了

Flask作为服务接口的处理框架,Flask作为服务接口的开发框

架,使得我们开源快速的开发岀我们的Web应用程序;第三层

为数据层袁

这一层主要是处理存储数据服务的袁

主要使用了

MySQL、Elasticsearch

Mongodb

数据存储服务。Web

服务架构如图

1

所示。2.1网关层网关层中使用Nginx服务作为代理,Nginx是一款高性能、


本文标签: 服务 开发 框架 使用 处理