【Flask】Flask项目部署上线

Flask 项目部署上线

1.Gunicorn

Gunicorn 是一个纯 Python WSGI 服务器,配置简单,多工作者实现,方便 性能调优。

  • 它倾向于与主机平台轻松集成。

  • 它不支持 Windows (但可以在 WSL 上运行)。

  • 它很容易安装,因为不需要额外的依赖或编译。

  • 它有内置的异步工作者,支持使用 gevent 或 eventlet。

创建虚拟环境:

python3 -m venv .venv

# 激活虚拟环境
source .venv/bin/activate

# 升级pip工具
python3 -m pip install --upgrade pip

#安装需要的第三方包
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

运行项目:

python run.py

页面访问:

安装 gunicorn 第三方包:

pip install gunicorn

启动项目

python3 -m gunicorn market:app -b 0.0.0.0:5000

# 后台启动
nohup python3 -m gunicorn market:app -b 0.0.0.0:5000 >> gunicorn.log 2>&1 &

页面能够正常访问

2.Waitress

Waitress 是一个纯 Python 的 WSGI 服务器。

  • 它很容易配置。

  • 它直接支持 Windows 。

  • 它很容易安装,因为它不需要额外的依赖或编译。

  • 它不支持流式请求,完整的请求数据总是被缓冲。

  • 它使用一个具有多个线程工作者的单一进程。

虚拟环境已经相关依赖的安装同 Gunicorn 章节,这里就不再重复。

安装 waitress

pip3 install waitress -i https://pypi.tuna.tsinghua.edu.cn/simple/

使用 waitress 启动项目:

waitress-serve --host 0.0.0.0 --port 5000 market:app

后台启动:

# 后台启动
nohup waitress-serve --host 0.0.0.0 --port 5000 market:app >> gunicorn.log 2>&1 &

页面能够正常登录访问:

3.uWSGI

uWSGI 是一个快速、编译的服务器套件,相较于基本的服务器具有更广泛的 配置和功能。

  • 由于是编译过的程序,它具有很好的性能。

  • 相较于基本的应用,它的配置很复杂,有很多的选项。因此,对于新手来 来说,上手是有难度的。

  • 它不支持 Windows (但可以在 WSL 上运行)。

  • 在某些情况下,它需要一个编译器来安装。

虚拟环境已经相关依赖的安装同 Gunicorn 章节,这里就不再重复。

安装 uwsgi

pip3 install pyuwsgi -i https://pypi.tuna.tsinghua.edu.cn/simple/

使用 uwsgi 启动项目:

uwsgi --http 0.0.0.0:5000 --master -p 4 -w market:app

后台启动:

nohup uwsgi --http 0.0.0.0:5000 --master -p 4 -w market:app >> gunicorn.log 2>&1 &

前台能够正常访问页面:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/491116.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Postwoman 安装

Postwoman作为Postman的女朋友,具有免费开源、轻量级、快速且美观等特性,是一款非常好用的API调试工具。能帮助程序员节省时间,提升工作效率。 Github地址:GitHub - hoppscotch/hoppscotch: 👽 Open source API devel…

【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法

目录 1.简单了解vim 2.vim的模式 2.1命令模式 2.2插入模式 2.3底行模式 3.vim各模式下的命令集 3.1正常(命令模式下) 3.1.1光标定位命令 3.1.2 复制粘贴 3.1.3 删除 3.1.4 撤销 3.1.5大小写转换 3.1.6替换 「R」:替换光标所到之处的字符&…

鸿蒙(HarmonyOS)Navigation如何实现多场景UI适配?

场景介绍 应用在不同屏幕大小的设备上运行时,往往有不同的UI适配,以聊天应用举例: 在窄屏设备上,联系人和聊天区在多窗口中体现。在宽屏设备上,联系人和聊天区在同一窗口体现。 要做好适配,往往需要开发…

Git相关命令(一)

一、简介 Git 是一个开源的分布式版本控制系统。 当然, git 不会傻傻的把你的每一个版本完整的存储下来,他仅仅会存储每次修改的位置和内容(可持久化),每一次 commit 可以理解为产生一个版本,接下来的版本…

数据结构与算法 顺序表的基本运算

一、实验内容 编写一个程序实现,实现顺序表的各种基本运算(假设顺序表的元素类型为char),并以此为基础设计一个程序完成下列功能: (1)初始化顺序表; (2)采…

开源推荐榜【Sejil一个 .NET带界面的日志管理组件】

Sejil 是一个库,使您能够直接从应用程序捕获、查看和过滤 ASP.net Core 应用程序的日志事件。它支持结构化日志记录、查询以及保存日志事件查询。 开源地址:https://github.com/ZiggyCreatures/FusionCache 使用方法: 安装 Sejil 软件包 do…

鸿蒙HarmonyOS应用开发——跨端迁移

在用户使用设备的过程中,当使用情境发生变化时(例如从室内走到户外或者周围有更适合的设备等),之前使用的设备可能已经不适合继续当前的任务,此时,用户可以选择新的设备来继续当前的任务,原设备…

【前端Vue】Vue3+Pinia小兔鲜电商项目第3篇:静态结构搭建和分类实现,1. 整体结构创建【附代码文档】

Vue3ElementPlusPinia开发小兔鲜电商项目完整教程(附代码资料)主要内容讲述:认识Vue3,使用create-vue搭建Vue3项目1. Vue3组合式API体验,2. Vue3更多的优势,1. 认识create-vue,2. 使用create-vue创建项目,1. setup选项的写法和执行…

v4l2采集视频

Video4Linux2(v4l2)是用于Linux系统的视频设备驱动框架,它允许用户空间应用程序直接与视频设备(如摄像头、视频采集卡等)进行交互。 linux系统下一切皆文件,对视频设备的操作就像对文件的操作一样&#xff…

标题:深入了解 JavaScript 中的字符串分割:遇到 / 和 | 都分割

在 JavaScript 中,处理字符串是一项常见的任务。有时候,我们需要将字符串按照特定的字符进行分割,以提取或操作其中的各个部分。在这篇博客中,我们将深入探讨如何使用 JavaScript 的字符串分割功能,特别是当遇到斜杠 /…

汽车后视镜反射率检测光纤光谱仪:安全驾驶的守护神

在汽车的日常使用中,后视镜扮演着至关重要的角色。它不仅帮助驾驶员观察车辆后方的情况,还确保了行车的安全性。然而,由于各种原因,后视镜的反射率可能会降低,从而影响到驾驶员的视线范围和判断能力。为了解决这一问题…

Reactor 模式全解:实现非阻塞 I/O 多路复用

Reactor网络模式是什么? Reactor网络模式时目前网络最常用的网络模式。如果你使用Netty,那么你在使用Reactor;如果你使用Twisted,那么你子啊使用Reactor;如果你使用netpoll,那么你在使用Reactor。 这里先给出答案:Reactor I/O多…

Python与供应链-2预测误差及指数平滑需求预测模型

主要介绍预测误差和指数平滑模型的相关理论,然后再通过Python的statsmodels封装的指数平滑函数预测需求。 1预测误差 预测误差是指预测结果与预测对象发展变化的真实结果之间的差距。这种误差分为绝对误差和相对误差。绝对误差是预测值与实际观测值的绝对差距,而相对误差则…

Spring学习——什么是循环依赖及其解决方式

文章目录 前言一、什么是循环依赖二、解决思路1、循环依赖分类2、对象初始化步骤及对象分类3、spring是如何解决的4、图解5、三级缓存1、区别2、ObjectFactory是什么 三、源码debug1、spring创建对象过程1、dubug第一步——找到getBean2、dubug第二步——getBean与doGetBean3、…

35.基于SpringBoot + Vue实现的前后端分离-在线考试系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统,采用SpringBoot Vue框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得基于SpringBoot Vue技术的在线考试系统设计与实现管理工作系统…

Uniapp三种常用提示框

具体参数方法可参考: uniapp交互反馈 uni.showToast(OBJECT) //显示消息提示框。 uni.hideToast() //隐藏消息提示框。 //具体使用 uni.showToast({title: 新增成功,duration: 2000 }); uni.showLoading(OBJECT) //显示 loading 提示框, 需主动调用 uni.hideLoading 才能关闭提…

区块链安全之DDoS防护的重要性及其实施策略

随着区块链技术的不断发展和广泛应用,其安全问题也日益凸显。其中,分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施,并提出相应的防护策略。 一、区块链面…

毕马威:量子计算成未来3-5年重大挑战

毕马威(KPMG)是一家全球性的专业服务网络,其历史可追溯到19世纪末。作为“四大”会计师事务所之一,毕马威在审计、税务和咨询服务领域享有盛誉。公司在全球范围内拥有多个办事处,服务遍及各个行业,包括金融…

【大数据】Flink学习笔记

认识Flink Docker安装Flink version: "2.1" services:jobmanager:image: flinkexpose:- "6123"ports:- "20010:8081"command: jobmanagerenvironment:- JOB_MANAGER_RPC_ADDRESSjobmanagertaskmanager:image: flinkexpose:- "6121"- …

Visio Viewer for Mac(Visio文件查看工具)

Visio Viewer for Mac是一款专为Mac用户设计的Microsoft Visio文件查看器。它拥有直观易用的用户界面,使得用户可以快速加载和显示Visio文件,无需安装完整的Microsoft Visio软件。 软件下载:Visio Viewer for Mac3.1.0激活版 Visio Viewer fo…