基于Flask的Python Web开发

2020-11-24 17:40史宝坤李欣王淑娴樊笑含张真真河北农业大学
数码世界 2020年3期
关键词:服务器端调用开发者

史宝坤 李欣 王淑娴 樊笑含 张真真 河北农业大学

引言

随着计算机技术的发展,web开发技术也迅速的发展。它们对开发者以及对编程语言,编程框架的要求越来越高。而Flask作为简单且易于拓展的web框架,适用于前后端分离的应用程序的 Web 服务器端开发,有利于提高开发者的效率,减少耦合。同时此框架使用Python语言编写,许多第三方库可供开发者使用,方便了开发者的学习及开发。

1 Python简介

Python 是一个面向对象的脚本语言。它结构简单,定义清晰易于开发者的学习,阅读和维护。它有着丰富的类库,可以嵌入到其他语言中,被称为胶水语言。其提供了很多关于数据库的接口,适用于MVC开发模式,提高了开发者开发效率。此外,还具有可移植,可拓展等特性。近几年, 它逐渐成为主流的编程语言,广泛应用到web开发中。

在使用Python进行web应用的开发中,要充分利用它的标准库以及第三方库。相较于C语言其速度慢。因此,对于某些速度要求很高的程序代码,应该合理利用其可嵌入性,调用C语言的代码,提高程序运行速度。

2 Flask简介

作为一种用Python语言编写的“微”框架。其依赖 Jinja模板引擎和 Werkzeug工具箱进行工作。进行数据库操作时,可以根据自己的需要选取合适的数据库。同时可以使用SQLAlchemy进行对象关系映射,更加高效的进行数据库的操作。其作为一个轻量级的框架,只提供最基础的功能,但是可以通过调用类库进行拓展,使后端业务逻辑层的编写更加简单,大大减轻了开发者的负担,适用于Web API开发。

3 服务端Flask应用的生产环境配置

无论是C/S还是B/S架构,合理的配置好服务器端Flask生产环境极其重要。在进行Web API开发中,我们在一台安装了Linux系统服务器上进行了部署。部署可以分成:基础环境的配置,采取Nginx+Gunicorn的方式部署。

3.1 Python及Flask的安装

服务器上安装Python,建议使用python3。然后使用pip install Flask 该服务器上安装Flask。

3.2 Nginx+Gunicorn的方式部署Flask。

Nginx提供Http代理,反向代理,负载均衡,web缓存等功能,通过修改配置文件来实现。进行反向代理时根据自己的需求设置正则表达式,采取不同的转发策略。Nginx对请求进行解析判断,符合哪一个正则表达式,就将请求转发到哪个服务器中。进行负载均衡时采用加权轮询方法进行负载均衡设置,设置每个服务器的权重,高效处理客户端请求。对服务器响应时间,传输大小等设置能使服务器更安全效率的运行。

Gunicorn 运行Flask项目服务器中的应用。其可以容纳 WSGI应用,提供Flask工作环境的依赖,同时支持多进程运行,提高了并发数。

4 基于Flask的API实现

在基于Flask的Web开发中,后端使用flask处理前端发送的请求,进行控制器逻辑和业务逻辑的开发。 前端可以使用不同的语言调用后端开发的接口,实现前后端分离开发。

4.1 接口目录文件

DAO:主要完成与数据层相关的工作,如数据库的创建以及对其增删改查等操作。

app:主要是一些方法类的实现。在某一个具体的类中使用flask_restful对前端发送的请求进行相关的读取等操作。使用reqparse进行参数的解析,成功后,调用数据层中方法进行数据的相关操作。最后将数据层中返回的数据进行加工,返回给前端。

server.py:接口的启动文件。当接收到前端发送的请求时,根据路由规则相应类执行。

logs:接口的日志,记录了接口运行时产生的状态,config.py:配置文件,如与数据库的相关配置等。

4.2 接口测试

在后端程序完成后使用一些软件对接口的功能进行测试。

5 结束语

本文对Python以及Flask的基本概念进行了研究,介绍了如何基于Flask框架配置服务器环境以及基于Flask的Web API开发。我们发现Flask框架可以简单方便的进行Web API开发。作为一个轻量级的web架构,Flask可以快速简单的进行高质量Web的开发,能够满足计算机技术日新月异发展的要求。

猜你喜欢
服务器端调用开发者
Linux环境下基于Socket的数据传输软件设计
系统虚拟化环境下客户机系统调用信息捕获与分析①
基于Qt的安全即时通讯软件服务器端设计
“85后”高学历男性成为APP开发新生主力军
基于Qt的网络聊天软件服务器端设计
16%游戏开发者看好VR
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
基于属性数据的系统调用过滤方法
利用RFC技术实现SAP系统接口通信
C++语言中函数参数传递方式剖析