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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.2整式的加减(第1课时)——合并同类项教学及作业设计

【学习目标】 1.理解同类项的概念,并能正确辨别同类项. 2.理解合并同类项的依据是乘法分配律,掌握合并同类项的方法. 知识点归纳: ★合并同类项后,所得的项的系数是___________…

Visual Studio使用Git忽略不想上传到远程仓库的文件

前言 作为一个.NET开发者而言,有着宇宙最强IDE:Visual Studio加持,让我们的开发效率得到了更好的提升。我们不需要担心环境变量的配置和其他代码管理工具,因为Visual Studio有着众多的拓展工具。废话不多说,直接进入正…

图数据库Neo4j——SpringBoot使用Neo4j 简单增删改查 复杂查询初步

前言 图形数据库是专门用于存储图形数据的数据库,它使用图形模型来存储数据,并且支持复杂的图形查询。常见的图形数据库有Neo4j、OrientDB等。 Neo4j是用Java实现的开源NoSQL图数据库,本篇博客介绍如何在SpringBoot中使用Neo4j图数据库&…

MySQL:事务

目录 概念事务特性开始事务事务的状态事务并发问题事务隔离级别 概念 MySQL事务是一组在数据库中执行的操作,它们必须要么全部成功执行,要么全部不执行。MySQL事务被设计为确保数据库中的数据的完整性和一致性,即使在并发访问的情况下也是如…

在Ubuntu上安装Redis并学习使用get、set和keys命令

目录 安装Redis切换到root用户搜索redis相关软件包安装redis修改配置文件重启服务器使用redis客户端连接服务器 get与set命令keys 安装Redis 我们在Ubuntu20.04上进行Redis的安装 切换到root用户 使用su命令: 在终端中,输入su并按回车键。然后输入roo…

LV.12 D16 轮询与中断 学习笔记

一、CPU与硬件的交互方式 轮询 CPU执行程序时不断地询问硬件是否需要其服务,若需要则给予其服务,若不需要一段时间后再次询问,周而复始 中断 CPU执行程序时若硬件需要其服务,对应的硬件给CPU发送中断信号&#xff0c…

linux 驱动——字符设备驱动(自动生成设备节点文件)

文章目录 字符设备驱动字符设备 APP生成 dev 节点的原理配置内核自动创建设备节点模块使用 字符设备驱动 #include "linux/device/class.h" #include "linux/export.h" #include "linux/uaccess.h" #include <linux/types.h> #include &l…

mapbox使用marker创建html点位信息

mapbox使用marker创建html点位信息 codePen地址 mapboxgl.accessToken "pk.eyJ1IjoibGl1emhhbzI1ODAiLCJhIjoiY2xmcnV5c2NtMDd4eDNvbmxsbHEwYTMwbCJ9.T0QCxGEJsLWC9ncE1B1rRw"; const center [121.29786, 31.19365]; const map new mapboxgl.Map({container: &quo…

解析mfc100u.dll文件丢失的修复方法,快速解决mfc100u.dll问题

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是“缺少某个文件”的错误。最近&#xff0c;我也遇到了一个这样的问题&#xff0c;那就是“mfc100u.dll丢失”。这个问题可能会导致某些应用程序无法正常运行&#xff0c;给我们带来困扰。…

10本值得阅读的量化交易书籍

什么是量化交易&#xff1f; 量化交易是利用数学模型或算法来创建交易策略并进行交易。量化交易通常由大型机构交易员或对冲基金雇用&#xff0c;他们雇用大量的博士和工程师团队。从历史上看&#xff0c;量化交易领域一直非常隐秘&#xff0c;有效的想法往往受到公司的严密保…

【漏洞复现】Apache_HTTPD_未知后缀名解析

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 upload-labs/Pass-07 上传1.php文件 <?php eval($_REQUEST[6868]);phpinfo();?>访问/upload/1.php.jaychou 蚁剑连接

(后续补充)vue+express、gitee pm2部署轻量服务器

首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 关闭防火墙 systemctl stop firewalld 重新载入防火墙使设置生效 firewall-cmd --reload 后端的 pm2.config.cjs …