Flask及Pypi离线部署生产实践

本文详细介绍了在无互联网环境下,如何手动下载并安装Flask 1.1.2及其依赖包,如Werkzeug、Jinja2等。首先,列出所需下载的依赖版本,然后通过Python的pip离线安装。此外,还涉及了gunicorn的配置和应用启动,以及在安装过程中可能遇到的错误和解决办法。
摘要由CSDN通过智能技术生成

一、概述

 
在这里插入图片描述

Flask是一个使用Python 编写的开源轻量级Web 应用框架。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎,它依赖 Werkzeug WSGI 套件、 Jinja 模板引擎和 Click CLI 套 件。Flask框架可用于构建任何类型的Web应用程序,包括单页面应用程序、企业应用程序、博客、社交媒体应用程序等等。Flask是用python进行web开发,一个常见的python web框架。实际Flask可完全看做是python的一个第三方库。与其他模块一样,安装时可以直接使用python的pip命令实现,目前python2已经不受社区支持,推荐使用Python3部署。

另外了解Flask部署之前,我们需先了解一个协议规范WSGI,它的全称是Web Server Gateway Interface,翻译过来就是Web服务器网关接口。具体的来说,WSGI是一个规范,定义了Web服务器如何与Python应用程序进行交互,使得使用Python写的Web应用程序可以和Web服务器对接起来。WSGI协议主要包括server和application两部分

1)WSGI server:负责从客户端接收请求,将request转发给application,将application返回的response返回给客户端;

2)WSGI application:接收由server转发的request,处理请求,并将处理结果返回给server。application中可以包括多个栈式的中间件(middlewares),这些中间件需要同时实现server与application,因此可以在WSGI服务器与WSGI应用之间起调节作用:对服务器来说,中间件扮演应用程序,对应用程序来说,中间件扮演服务器。

WSGI协议其实是定义了一种server与application解耦的规范,即可以有多个实现WSGI server的服务器,也可以有多个实现WSGI application的框架,那么就可以选择任意的server和application组合实现自己的web应用。

在这里插入图片描述
资源链接:Flash官方文档中文转译文档Gunicorn 文档

二、背景说明

 
在这里插入图片描述

Flask 相关概念:

1.应用程序对象:应用程序对象是Flask应用程序的核心对象。它是一个Flask类的实例。应用程序对象是用于创建Web应用程序的主要接口。

2.上下文:Flask框架中有两种上下文:应用程序上下文和请求上下文。应用程序上下文为应用程序提供了一个全局上下文,而请求上下文则为每个请求提供了一个上下文。

3.路由:路由是Flask应用程序中的URL映射。它指定了URL与视图函数之间的关系。

4.视图函数:视图函数是Flask应用程序中处理请求的函数。它们使用装饰器将路由绑定到函数上。

5.模板:模板是Flask应用程序中用于渲染HTML页面的文件。它们使用Jinja2模板引擎进行渲染。

6.表单:表单是Flask应用程序中用于收集用户输入数据的HTML表单。它们使用WTForms库进行验证和处理。

近期,集团某电量采集项目中,需要部署一个图形解析服务器,但服务器无法连接外网,研发人员开发工作需要构建pypi环境;如果服务器可以连接到外网,可以简单的用 pip install Flask 直接将Flask的依赖包及Flask直接安装好。然而本次项目中只能---->离线安装。另本次显示环境实现web访问,flask部署拟采用:nginx+uWSGI 和nginx+gunicorn,这两种方案,uWSGI和Gunicorn都是实现了WSGI server协议的服务器(把HTTP协议转化成WSGI协议,让Python可直接使用),Flask是实现了WSGI application协议的web框架,经评估后选择后者,nginx主要还是处理静态文件,反向代理,HTTPS/HTTP请求处理,鬓发处理;Gunicorn作为一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,已然成熟,具有使用非常简单,轻量级的资源消耗,以及高性能等特点,现场主要用作wsgi app的容器,启动python应用,与Flask框架交互进行request处理;使用supervisor启停监控wsgi应用。架构类似如下:
在这里插入图片描述

三、Python package index(Pypi)环境安装

 
Flask下载地址:https://github.com/pallets/flask

在这里插入图片描述

官方说:flask 依赖两个外部库:Werkzeug 和 Jinja2 。 Werkzeug 是一个 WSGI(在 Web 应用和多种服务器之间的标准 Python 接口) 工具集。Jinja2 负责渲染模板。但是实际安装flask之前,需要先安装其依赖包;可参考一下列表:

1、click-6.7-py2.py3-none-any.whl
2、itsdangerous-0.24.tar.gz
3、markupsafe-1.0.tar.gz
4、werkzeug-0.14.1-py2.py3-none-any.whl
5、jinja2-2.10-py2.py3-none-any.whl
6、flask-1.0.2-py2.py3-none-any.whl

3.1、Flask依赖包下载

在这里插入图片描述

Werkzeug>=0.15
Jinja2>=2.10.1, which requires:
MarkupSafe
Babel>=0.8, which requires:
pytz
itsdangerous>=0.24
click>=5.1

注:以上依赖包需要按照顺序进行按照,版本只做参考,你可以使用最新版。

3.1.1 Flask安装所依赖包的版本:less /usr/local/flask-master/setup.py

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值