当前位置: 首页 > news >正文

python创建一个简单的flask应用

下面用python在本地和服务器上分别创建一个简单的flask应用:
1.在pc本地
1)pip flask后创建一个简单的脚本flask_demo.py

from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello_world():return 'Hello, World!'
  1. win+R进入命令行,切换到flask_demo.py的路径,执行
flask run

启动应用

如果显示启动失败,可能的原因是:
设置FLASK_APP环境变量:在命令行中输入以下命令,将FLASK_APP环境变量设置为应用程序文件名(不包括.py扩展名):
set FLASK_APP=your_app_file_name(如flask_demo)
然后再次尝试运行应用程序。
在这里插入图片描述
可以看到这里已经启动成功。

此时,可以在本地浏览器访问:(默认是5000端口)
在这里插入图片描述
同一局域网内的设备也可以通过ip地址来访问。

  1. 在服务器上部署
    1)和本地类似,在服务器上创建脚本
    在这里插入图片描述
    2)用virtualenvwrapper为flask应用单独创建一个虚拟环境
 pip install virtualenvwrapper

安装virtualenvwrapper时,你无需在特定的目录下进行。可以在终端中直接运行pip install virtualenvwrapper命令来进行安装。这个命令会自动下载并安装virtualenvwrapper工具,无论你当前所在目录是什么,都不会影响安装过程。
安装好virtualenvwrapper后,我们在/data/flask_demo的目录下创建名为flask_demo的虚拟环境:
在这里插入图片描述
刷新一下,可以看到多了一个flask_demo的文件夹:
在这里插入图片描述
激活新建的虚拟环境:

source /data/flask_demo/flask_demo/bin/activate

其中data/flask_demo/flask_demo 是虚拟环境的路径
在这里插入图片描述
可以看到已经切换成功。

3)在虚拟环境中下载依赖的pip包,如flask等:
查看当前虚拟环境中有哪些库:
在这里插入图片描述
可以看到,我们所需要的flask此时并不在虚拟环境中,因此需要进行手动下载。
4)在本地导出所在环境的pip依赖包:
先切换到虚拟环境所在的目录,激活该虚拟环境,然后执行

pip freeze > requirements.txt

将得到本地环境中的所有依赖库:
在这里插入图片描述
将这个文件传到服务器,requirements.txt文件通常应该放在项目的根目录下,也就是包含项目代码的主目录中。
5)在2)步激活服务器的虚拟环境后,将requirements.txt文件中的依赖包同步到虚拟环境中,可以使用以下命令:

pip install -r requirements.txt

在这里插入图片描述
可以看到已经在flask_demo这个虚拟环境中安装了requirements.txt中的依赖包
6)启动应用

 export FLASK_APP=/data/flask_demo/flask_demo.pyflask run

此时虽然可以在本地测试,但是无法在外网进行访问。
7) 开放外网访问
我用的是腾讯云轻量服务器,其开放端口有两个需要设置的地方:
第一个在控制台的防火墙这里添加规则,开放自己需要的端口
在这里插入图片描述
在这里插入图片描述
第二个地方是在服务器内部防火墙,把端口打开
查询当前打开的端口

firewall-cmd --list-all

在这里插入图片描述
这里就是打开的端口

如果此处没有自己想要的端口,则需要进行开放,如:

firewall-cmd --permanent --add-port=62234/tcp && firewall-cmd --reload

此时,再运行py脚本
结果报错了

ImportError: cannot import name 'EVENT_TYPE_OPENED' from 'watchdog.events' (/data/flask_demo/flask_demo/lib/python3.10/site-packages/watchdog/events.py)

更新一下watchdog

pip install --upgrade watchdog

在这里插入图片描述
运行成功!
在这里插入图片描述

相关文章:

python创建一个简单的flask应用

下面用python在本地和服务器上分别创建一个简单的flask应用: 1.在pc本地 1)pip flask后创建一个简单的脚本flask_demo.py from flask import Flaskapp Flask(__name__)app.route(/) def hello_world():return Hello, World!winR进入命令行,…...

阿里云域名实战

一、准备阿里云服务器,实现网站功能 (1)百度搜索阿里云 (2)登录阿里云 可以使用支付宝,淘宝账号登录 (3)点击控制台 (4)创建实例,购买云服务器 (5&#x…...

git关联远程仓库自己分支自用

初始化仓库 cassielDESKTOP-KPKFOEU MINGW64 /d/code/api_test_202310232022 (tong) $ git init Reinitialized existing Git repository in D:/code/api_test_202310232022/.git/关联远程仓库并创建本地分支 cassielDESKTOP-KPKFOEU MINGW64 /d/code/api_test_202310232022 …...

eBPF BCC开源工具简介

目录 官方链接 编译安装 ubuntu版本 安装 examples tools hello_world.py demo 运行报错 网上目前的解决办法 错误分析过程 python版本检测 libbcc库检查 python3 bcc库检查 正常输出 监控进程切换 运行输出 监控CPU直方图 缓存命中率监控:caches…...

Linux上后台运行进程(nohub、screen和tmux )

文章目录 Linux上后台运行进程(nohub、screen和tmux )nohupscreen虚拟终端安装screen使用 tmux终端复用器[个人推荐]安装tmux使用 Linux上后台运行进程(nohub、screen和tmux ) 命令行的典型使用方式是,打开一个终端窗…...

javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用

目录 mavenspringboot实验目的实验内容环境的搭建 在开发中,maven和spring都是非常常用、非常重要的管理工具和框架,今天就在这里使用idea进行环境的搭建和创建第一个spring程序 maven 1.1maven是一个跨平台的项目管理工具(主要管理jar包&am…...

重新思考边缘负载均衡

本文介绍了Netflix在基于轮询的负载均衡的基础上,集成了包括服务器使用率在内的多因素指标,并对冷启动服务器进行了特殊处理,从而优化了负载均衡逻辑,提升了整体业务性能。原文: Rethinking Netflix’s Edge Load Balancing[1] 我…...

构建一个CAN报文周期任务类

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、can周期任务类构建总结 前言 提示:这里可以添加本文要记录的大概内容: 最近想着有时间实现总线报文收发的动态的配置,…...

深入理解计算机系统CS213 - Lecture 02

Bits, Bytes, and Integer 1.位运算与条件运算 &&#xff0c;|&#xff0c;^&#xff0c;~ 是做位运算。诸位01运算。 &&&#xff0c;||&#xff0c;&#xff01;是判断条件真假&#xff0c;而后返回0或1。 2. 位移 x << y&#xff1a;左移y位&#xff…...

【KVM】KVM介绍及功能概述

前言 大家好&#xff0c;我是秋意零。 今天介绍的内容是KVM的概述&#xff0c;以及它所支持的基本功能。 &#x1f47f; 简介 &#x1f3e0; 个人主页&#xff1a; 秋意零&#x1f525; 账号&#xff1a;全平台同名&#xff0c; 秋意零 账号创作者、 云社区 创建者&#x1f…...

centos7安装MySQL

引言 在安装与卸载的时候&#xff0c;用户全部要切换为root 在使用MySQL的时候&#xff0c;尽量使用root权限&#xff0c;便于使用&#xff08;root权限不会开的可以去百度找一下自己服务器类型的开启方式&#xff09;在本文章我将使用xshell7进行操作&#xff0c;你也可以使用…...

leetcode做题笔记215. 数组中的第K个最大元素

给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入: [3,2,1,5,6,4], k 2…...

Linux Vim撤销和恢复撤销快捷键

使用 Vim 编辑文件内容时&#xff0c;经常会有如下 2 种需求&#xff1a; 对文件内容做了修改之后&#xff0c;却发现整个修改过程是错误或者没有必要的&#xff0c;想将文件恢复到修改之前的样子。 将文件内容恢复之后&#xff0c;经过仔细考虑&#xff0c;又感觉还是刚才修改…...

【BUG】记一次Maven install 报错 Could not find artifact ...:pom:0.0.1-SNAPSHOT

问题描述 创建一个maven多模块项目&#xff0c;执行install报错Could not find artifact …:pom:0.0.1-SNAPSHOT&#xff0c;然后点击clean也是报错。 原因分析&#xff1a; 从错误日志发现提示无法从远程maven仓库下载父模块&#xff0c;一看应该是哪里配置了强制从远程仓库…...

逆向学习记录(4)adb

adb用于PC和手机端通讯。 常用命令如下&#xff1a; 如果不是模拟器&#xff08;模拟器一般都有自己的adb&#xff09;&#xff0c;adb会出现在Andirod的SDK中&#xff0c;路径为&#xff1a;Android/SDK/platform-tools。 最好加入环境变量中。...

Windows Server 2016使用MBR2GPT.EXE教程!

什么是MBR2GPT.exe&#xff1f; MBR2GPT.exe是微软提供的专业工具&#xff0c;可在命令提示符下运行。使用该工具可以将引导磁盘从MBR转换为GPT分区样式&#xff0c;而无需修改或删除所选磁盘上的任何内容。 在Windows Server 2019和Windows 10&#xff08;1703…...

SpringBoot项目多环境开发

1.yml文件&#xff08;旧&#xff09; 说明&#xff1a;旧的写法。 #应用环境 spring:profiles:active: dev --- #设置环境#生产环境 spring:profiles: pro server:port: 81--- #开发环境 spirng:profiles: dev server:port: 81--- #测试环境 spring:profiles: test server:p…...

godot4实现一个单例类,作为公共数据共享类

在 Godot 4 中&#xff0c;你可以通过创建一个自动加载的脚本来实现单例类&#xff0c;用于作为公共的数据总线。你需要做的是&#xff1a; 1. 创建一个新的 GDScript 文件&#xff0c;例如 GlobalData.gd&#xff0c;并在其中定义你想要共享的变量和函数。 2. 然后&#xff0…...

AcWing - 5287. 数量 - 组合数求解+思维

最多只有k个位置满足&#xff0c;ai ! i 所以从0-k进行遍历&#xff0c;对于kj&#xff1a; 0时&#xff0c;所有位置上的数字都等于i&#xff0c;只有一种 1时&#xff0c;没有 2时&#xff0c;排列只有两种&#xff0c;1 2 或者 2 1&#xff0c;只有一种情况满足 同理3和4可以…...

《实战:如何搭建一个完整的 Vue2.0 项目》- 7、Vue2.x 项目 webpack 4 升级 5(半自动升级)

1.自动升级 先全局安装升级插件 npm i npm-check npm-check-updates -g检查依赖 npm-check更新检查后的依赖并展示版本号&#xff0c;此时 package.json还没有更新 npm-check-updates升级 package.json&#xff0c;下图显示更新版本&#xff0c;此时 package.json文件已变更…...

手把手教你用Proteus给Arduino项目做“硬件体检”:以舵机控制为例

用Proteus为Arduino舵机项目做虚拟压力测试的5个实战技巧 当你花了两天时间焊接好电路板&#xff0c;满怀期待地给舵机通电时&#xff0c;突然闻到一股焦糊味——这种硬件翻车现场每个创客都经历过。仿真工具的价值就在于&#xff0c;它能让你在烧毁第一个元器件之前&#xff0…...

Linux进程(下)

上一篇文章介绍了进程的概念和进程的状态&#xff0c;但进程的知识还有很多&#xff0c;本文继续进行讲解。进程的管理指令之前提到过许多对进程进行管理的指令&#xff0c;但没有进行讲解&#xff0c;在这里统一聊聊。核心指令有四个 ps&#xff0c;top&#xff0c;kill&#…...

内存屏障与volatile:并发编程的核心机制解析

1. 内存屏障与volatile的核心概念解析在并发编程领域&#xff0c;内存屏障和volatile是两个至关重要的底层技术。它们看似简单&#xff0c;却直接影响着程序的正确性和性能表现。理解这两个概念需要从计算机体系结构的多个层面进行分析。1.1 volatile关键字的本质作用volatile在…...

安卓开发者必看:解决Google Play服务报错的5种实战方法(附工具推荐)

安卓开发者必看&#xff1a;解决Google Play服务报错的5种实战方法&#xff08;附工具推荐&#xff09; 在安卓应用开发过程中&#xff0c;Google Play服务&#xff08;Google Play Services&#xff09;的集成几乎是不可避免的——无论是地图服务、支付功能&#xff0c;还是推…...

QMK Toolbox:如何用这款开源工具轻松刷写机械键盘固件?

QMK Toolbox&#xff1a;如何用这款开源工具轻松刷写机械键盘固件&#xff1f; 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox 是一款专为机械键盘爱好者设计的开源固件刷写…...

【Hot 100 刷题计划】 LeetCode 215. 数组中的第K个最大元素 | C++ 快速选择与堆排序题解

LeetCode 215. 数组中的第K个最大元素 | C 快速选择与小顶堆双解法 &#x1f4cc; 题目描述 题目级别&#xff1a;中等 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不…...

基于stm32的红外体温计设计[单片机]-计算机毕业设计源码+LW文档

摘要&#xff1a;本文详细阐述了一款基于STM32单片机的红外体温计设计过程。该设计综合运用红外测温技术、单片机控制技术以及OLED显示技术等&#xff0c;实现了对人体体温的快速、精准测量与直观显示。通过硬件电路设计与软件程序编写&#xff0c;完成了包括红外测温模块、单片…...

Android OTA包极速提取:payload-dumper-go完整实战指南 [特殊字符]

Android OTA包极速提取&#xff1a;payload-dumper-go完整实战指南 &#x1f680; 【免费下载链接】payload-dumper-go an android OTA payload dumper written in Go 项目地址: https://gitcode.com/gh_mirrors/pa/payload-dumper-go payload-dumper-go是一款专为Andro…...

[具身智能-239]:OpenCV 与深度神经网络:两种计算机视觉哲学的深度对比

&#x1f4ca; OpenCV 与深度神经网络&#xff1a;两种计算机视觉哲学的深度对比这张表格精准地拆解了计算机视觉领域两大核心技术范式的底层逻辑差异&#xff0c;本质是 **「物理规则驱动」与「数据特征驱动」** 两种认知世界方式的碰撞。一、核心维度对比解读表格维度OpenCV …...

5个强力破解方案:BetterJoy手柄全场景PC适配指南

5个强力破解方案&#xff1a;BetterJoy手柄全场景PC适配指南 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_mi…...