python flask生成被控服务端 开放接口 可以调用本地程序启动D盘的app.py文件,并生成一个前端文件,有一个启动按钮

要创建一个使用 Flask 的被控服务端,开放接口以调用本地程序并启动 D 盘的 app.py 文件,以及生成一个带有启动按钮的前端文件,你需要做以下几个步骤:

  1. 设置 Flask 服务端:创建一个 Flask 应用,并定义一个 API 接口来接收请求。
  2. 执行本地程序:在 Flask 应用中,使用 subprocess 模块来执行本地 Python 脚本。
  3. 生成前端文件:你可以使用 Flask 渲染一个 HTML 模板,该模板包含一个启动按钮。

下面是一个简单的示例:

1. Flask 服务端设置

首先,安装 Flask(如果你还没有安装的话):

pip install flask

然后,创建一个 Flask 应用(例如 server.py): 

from flask import Flask, render_template, request, jsonify  
import subprocess  
import os  app = Flask(__name__)  @app.route('/')  
def index():  return render_template('index.html')  @app.route('/start_app', methods=['POST'])  
def start_app():  try:  # 使用绝对路径启动 app.py  script_path = os.path.join('D:\\', 'app.py')  subprocess.Popen(['python', script_path])  return jsonify({'message': 'App started successfully.'}), 200  except Exception as e:  return jsonify({'error': str(e)}), 500  if __name__ == '__main__':  app.run(debug=True)

2. 执行本地程序

在上面的代码中,我们定义了一个 start_app 函数,它使用 subprocess.Popen 来执行 D 盘下的 app.py 文件。你需要确保 Python 解释器的路径是正确的,并且 app.py 文件存在于 D 盘根目录下。

3. 生成前端文件

在 Flask 应用的 templates 文件夹中(如果没有,你需要创建一个),创建一个 HTML 文件(例如 index.html):

<!DOCTYPE html>  
<html lang="en">  
<head>  <meta charset="UTF-8">  <title>Control Panel</title>  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>  
</head>  
<body>  <button id="startButton">Start App</button>  <script>  $('#startButton').click(function() {  $.post('/start_app', function(data) {  if (data.message) {  alert(data.message);  } else if (data.error) {  alert('Error: ' + data.error);  }  });  });  </script>  
</body>  
</html>

这个 HTML 文件包含一个按钮,当用户点击这个按钮时,会发送一个 POST 请求到 /start_app 接口,从而启动 app.py 文件。

注意事项:

  • 安全性:这个示例非常基础,没有考虑任何安全性措施。在实际应用中,你需要考虑认证、授权、错误处理等方面。
  • 跨平台:这个示例假设你在 Windows 上运行。如果你在 Linux 或 macOS 上运行,你需要相应地调整 Python 解释器的路径和 app.py 文件的路径。
  • 依赖:确保你的 app.py 文件不依赖于任何只能在特定环境下运行的库或工具。

最后,运行 Flask 应用:

python server.py

然后在浏览器中访问 http://localhost:5000/,你应该能看到一个带有启动按钮的前端页面。点击按钮会尝试启动 D 盘下的 app.py 文件。 

 

 

 

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

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

相关文章

大型C++代码一些英文缩写理解

1.Cfg"通常是指"Configuration"&#xff0c;即"配置"的意思 2.“info"通常是指"information”&#xff0c;也就是"信息"的意思 3.DLG通常表示"Dialog"&#xff0c;即对话框的意思 4.opt表示选择 5"Img"可能表…

比KMP简单的Manacher

P3805 【模板】manacher - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) “没时间悼念KMP了&#xff0c;接下来上场的是Manacher&#xff01;” 什么是Manacher? 历史背景&#xff1a; 1975 年&#xff0c;一个叫 Manacher 的人发明了这个算法&#xff0c;所以叫Manacher 算…

Kratos 基础学习记录

一、安装golang环境 golang的安装和系统变量配置的教程有很多&#xff0c;简单列举几个教程: windows: 超详细Go语言环境安装(有图详解)_go环境安装-CSDN博客 linux: 【Linux — 安装 Go】Linux 系统安装 Go 过程总结_linux 安装go-CSDN博客 mac: mac安装Golang开发环境…

财务管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. …

Python类的构造方法 __init__及super().__init__

__init__ 是 Python 中特殊的方法&#xff0c;__init__ 构造方法在对象被创建时自动调用&#xff0c;用于在创建类的实例时进行初始化新创建的对象的状态。在这个方法内部&#xff0c;可以设置对象的初始属性&#xff0c;或者执行其他必要的初始化操作。 class ClassName:def …

02-JDK新特性-接口新特性

接口新特性 接口组成更新概述 接口的组成 常量 public static final String ZERO "0";抽象方法 public abstract void dance();默认方法&#xff08;JAVA8新增&#xff09; public default void dance(){}静态方法&#xff08;JAVA8新增&#xff09; public stat…

leecode 331 |验证二叉树的前序序列化 | gdb 调试找bug

计算的本质是数据的计算 数据的计算需要采用格式化的存储&#xff0c; 规则的数据结果&#xff0c;可以快速的按照指定要求存储数据 这里就不得不说二叉树了&#xff0c;二叉树应用场景真的很多 本题讲的是&#xff0c;验证二叉树的前序序列化 换言之&#xff0c;不采用建立树的…

Logback日志框架常见配置

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl logback简介 Logback是一个高性能、功能强大的日志框架&#xff0c;专为Java应用程序设计。它由Log4j的创始人Ceki Glc创建&#xff0c;并被视为Log4j的继承者和改进版。Lo…

3D Web轻量化平台HOOPS Web Platform在大型水利工程中的应用和价值

随着科技的不断进步和互联网的普及&#xff0c;数字化技术在各个领域的应用日益广泛&#xff0c;大型水利工程也不例外。作为一种先进的3D Web轻量化引擎&#xff0c;HOOPS Web Platform在大型水利工程中扮演着重要的角色&#xff0c;为工程设计、施工管理、运行维护等方面提供…

Ubuntu部署BOA服务器

BOA服务器概述 BOA是一款非常小巧的Web服务器&#xff0c;源代码开放、性能优秀、支持CGI通用网关接口技术&#xff0c;特别适合用在嵌入式系统中。 BOA服务器主要功能是在互联嵌入式设备之间进行信息交互&#xff0c;达到通用网络对嵌入式设备进行监控&#xff0c;并将反馈信…

Go的数据结构与实现【Binary Search Tree】

介绍 本文用Go将实现二叉搜索树数据结构&#xff0c;以及常见的一些方法 二叉树 二叉树是一种递归数据结构&#xff0c;其中每个节点最多可以有两个子节点。 二叉树的一种常见类型是二叉搜索树&#xff0c;其中每个节点的值都大于或等于左子树中的节点值&#xff0c;并且小…

Unbtun-arach64架构安装PySide2(python3.6)

aarch平台是无法通过pip安装PySide2的&#xff0c;同时利用源码下载一直报错 1. 我是python3.6.9&#xff0c;在官网上找到对应的PySide2版本 5.15.2.所以首先在官网下载Qt5.15.2的源码&#xff1a;https://download.qt.io/archive/qt/5.15/5.15.2/single/ 2. 编译qt环境 aar…

了解机器学习/深度学习常用的框架、工具

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、scikit-learn scikit-learn 官方文档&#xff1a;https://scikit-learn.org/stable/# scikit-learn 的背景和创建者 scikit-learn 是一个为 Python 编程语言设计的自由软件机器学习库。该项目最初…

lodash插件

安装 npm install lodash引入 import orderBy from lodash/orderBy使用 orderBy(要排序的变量&#xff0c;要排序的字段&#xff0c;升序还是降序) // 例如&#xff0c;评论按照点赞数量排序 orderBy(lilst, like, desc)

Seata(分布式事务实例环境搭建)

文章目录 1.基本介绍1.引出Seata2.问题分析 2.Seata的安装和配置1.解压到d盘2.修改D:\seata\conf\file.conf文件1.修改事务组2.修改日志存储模式为db3.修改数据库&#xff08;MySQL5.7&#xff09;连接信息4.创建seata数据库5.复制db_store.sql的内容&#xff0c;创建需要的表6…

Web实例_报表开发01-基于HTML进行报表呈现

Web实例_报表开发01-基于HTML进行报表呈现 报表开发是一种在利用了软件的基础上, 针对不同类型的报表, 进行开放的工作。 而以报表的方式, 将相关的内容、数值呈现出来的话, 则会起到更好的概况作用。 再加上, 报表开发工作是依托于计算机来完成的, 因此在效率、完整性等方面…

红酒:分类视角下的红酒品质评估与标准制定

在红酒的世界中&#xff0c;品质的评估与标准的制定对于维护消费者权益、促进行业健康发展具有重要意义。云仓酒庄雷盛红酒作为业界持续发展品牌&#xff0c;从分类的视角出发&#xff0c;对红酒品质进行了多方的评估&#xff0c;并积极参与制定相关的标准。 首先&#xff0c;从…

计算机笔记(1)

1.internet基本服务中&#xff0c;远程登陆&#xff1a;telnet 2.汽车ETC是因为有电子标签 3.网络层&#xff1a;路由器&#xff0c;在不同的网络中存储转发分组的网络设备是路由器 4. A类地址&#xff1a;10.0.0.0&#xff5e;10.255.255.255 B类地址&#xff1a;172.16.0…

优思学院|工程经理应如何利用PDCA循环?

作为工程经理&#xff0c;理解PDCA&#xff08;计划-执行-检查-行动&#xff09;质量管理循环程序对于确保项目质量和持续改进是十分重要。 PDCA 最早由美国质量管理专家 Walter A. Shewhart (1939)提出&#xff0c;其后被戴明博士&#xff08;Dr. Deming&#xff09;所采用、…

【Linux】权限理解

权限理解 1. shell命令以及运行原理2. Linux权限的概念3. Linux权限管理3.1 文件访问者的分类&#xff08;人&#xff09;3.2 文件类型和访问权限&#xff08;事物属性&#xff09;3.2.1 文件类型3.2.2 基本权限 3.3 文件权限值的表示方法3.4 文件访问权限的相关设置方法3.4.1 …