python创建一个简单的flask应用

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

from flask import Flask

app = 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.py
 flask 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

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

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

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

相关文章

Envoy XDS协议学习

Envoy xds学习 资料地址 envoy官网资料连接 接口说明 xds分为增量接口和全量接口SotW:state of the world 即全量的数据Incremental: 增量的数据 具体接口 Listener: Listener Discovery Service (LDS) SotW: ListenerDiscoveryService.StreamList…

跳跳狗小游戏

欢迎来到程序小院 跳跳狗 玩法:一直弹跳的狗狗,鼠标点击屏幕左右方向键进行弹跳,弹到不同物品会有不同的分数减扣,规定的时间3分钟内完成狗狗弹跳,快去跳跳狗吧^^。开始游戏https://www.ormcc.com/play/gameStart/198…

飞书开发学习笔记(一)-应用创建和测试

飞书开发学习笔记(一)-应用创建和测试 一.前言 现在大企业用的办公IM软件中,飞书是口碑最好的,不得不说,字节在开发产品方面,确实有自己独到的竞争力,比如说抖音、头条、飞书。在办公会议和云文档的体验上,其它的办公…

实验四: Android 资源访问

实验四: Android 资源访问 4.1 实验目的 本次实验的目的是让大家熟悉 Android 中的资源,资源指的是代码中使用 的外部文件,这些文件作为应用程序的一部分,被编译到应用程序中。 4.2 实验要求 掌握字符串资源,颜色资源和尺寸资源…

第五部分:Tomcat

5.1:JavaWeb 5.1.1:JavaWeb的概念 ①什么是JavaWeb? JavaWeb是指所有通过Java语言编写可以通过浏览器访问的程序的总称 JavaWeb是基于请求和响应来开发的 ②什么是请求? 请求是指客户端给服务器发送数据,叫请求Request ③什么是…

时空智友企业流程化管控系统文件存在任意文件上传漏洞

时空智友企业流程化管控系统文件存在任意文件上传漏洞 免责声明漏洞描述漏洞影响漏洞危害网络测绘Fofa: app"时空智友V10.1" 漏洞复现1. 构造poc2. 发送数据包,上传文件3. 访问webshellwebshell地址 免责声明 仅用于技术交流,目的是向相关安全人员展示漏…

NUUO网络摄像头(NVR)RCE漏洞复现

简介 NUUO Network Video Recorder(NVR)是中国台湾NUUO公司的一款网络视频记录器。 NUUO NVR视频存储管理设备的__debugging_center_utils___.php文件存在未授权远程命令执行漏洞,攻击者可在没有任何权限的情况下通过log参数执行任意命令。…

【产品经理从0到1】ID(工业设计)知识构建

目录 一、ID知识架构思维导图 ​二、3D打印设计工具 导语:作为一个硬件产品经理,虽然不需要自己进行工业设计,但是若要对产品外观和品质细节进行更深入和准确的把控,就需要了解工业设计的相关知识。 一、ID知识架构思维导图 二、…

JavaScript(WebAPI)

文章目录 什么是WebAPIDOM 基本概念DOM 树事件 操作元素获取/修改元素内容获取/修改元素属性获取/修改表单元素属性获取/修改样式属性 网页版猜数字游戏实现一个表白墙 什么是WebAPI 前面学习的 JS 分成三个大的部分 ECMAScript: 基础语法部分DOM API: 操作页面结构BOM API: …

两天实现思维导图的协同编辑?用Yjs真的可以

最近使用 Yjs 给自己开源的一个思维导图加上了协同编辑的功能,得益于该框架的强大,一直觉得很复杂的协同编辑能力没想到实现起来异常的简单,所以通过本文来安利给各位。 要实现协同编辑,目前主要有两种算法,一是 OT&a…

关于Intel Press出版的《Bedyong BIOS》第2版的观后感

文章目录 此书的背景UEFI运行时DXE基础CPU架构协议PCI协议UEFI驱动的初始化串口DXE驱动示例 《Beyond BIOS》首先介绍一个简单的UEFI应用程序模块,用于展示UEFI应用程序的行为。作者为Waldo。该模块名为“InitializeHelloApplication”,它接受两个参数&a…

【Mysql】Mysql中表连接的原理

连接简介 在实际工作中,我们需要查询的数据很可能不是放在一张表中,而是需要同时从多张表中获取。下面我们以简单的两张表为例来进行说明。 连接的本质 为方便测试说明,,先创建两个简单的表并给它们填充一点数据: …

保障效率与可用,分析Kafka的消费者组与Rebalance机制

系列文章目录 上手第一关,手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么,以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 Kafka存取原理与实现分析,打破面试难关 防止消息丢失与消息重复——Kafka可…

react+canvas实现横跨整个页面的动态的波浪线(贝塞尔曲线)

本来写这个特效 我打算用css实现的,结果是一波三折,我太难了,最终没能用css实现,转战了canvas来实现。来吧先看效果图 当然这个图的波浪高度、频率、位置、速度都是可调的,请根据自己的需求调整,如果你讲波…

windows10系统-17-文献管理软件

参考诸多文献管理软件的优劣比较如何?你有哪些使用心得? 参考我愿称之为目前最好用的文献管理和阅读软件!readpaper 1 文献总结 文献总结是非常重要的一项技能,不知道大家看完文献后有没有总结文献的习惯,有的话那挺…

数据仓库-拉链表

在数据仓库中制作拉链表,可以按照以下步骤进行: 确定需求:首先明确需要使用拉链表的场景和需求。例如,可能需要记录历史数据的变化,以便进行时间序列分析等。设计表结构:在数据仓库中,拉链表通…

Web自动化测试 —— PageObject设计模式!

一、page object 模式简介 1.1、传统 UI 自动化的问题 无法适应 UI 频繁变化无法清晰表达业务用例场景大量的样板代码 driver/find/click 二、page object 设计原则 2.1、POM 模式的优势 降低 UI 变化导致的测试用例脆弱性问题让用例清晰明朗,与具体实现无关 2.…

JVM常用命令

jps —查看pid jstat -gcutil 4364 1000 2000 —查看堆内存占用百分比,每秒打印1次,总共打印2000次 S0:幸存1区当前使用比例 S1:幸存2区当前使用比例 E:伊甸园区使用比例 O:老年代使用比例 M:元…

服务Service

一、服务概述 Service(服务)是Android四大组件之一,是能够在后台长时间执行操作并且不是供用户界面的应用程序组件。Senice可以与其他组件进行交互,一般由Activity启动,但是并不依赖于Activity。当Activity的生命周期结束时,Serv…

野火霸天虎 STM32F407 学习笔记_1 stm32介绍;调试方法介绍

STM32入门——基于野火 F407 霸天虎课程学习 前言 博主开始探索嵌入式以来,其实很早就开始玩 stm32 了。但是学了一段时间之后总是感觉还是很没有头绪,不知道在学什么。前前后后分别尝试了江协科技、正点原子、野火霸天虎三次 stm32 的课程学习。江协科…