python3 写一个 小软件支持接口调用进行一些操作

67 阅读1分钟

主要是用于下载图片到path位置 注意path 是路径全名 启动时候 可以配置属性 管理员权限运行旧可以存C盘 打包参数 点击运行后没有图标 可以在任务管理器进行管理进程

# -*- coding: utf-8 -*-
from flask import Flask, jsonify, request
from flask_cors import CORS
import subprocess
import threading
import os
import requests
'''

pyinstaller -F --noconsole main.py   --icon=itool.ico  
'''

# 主Flask应用
app_main = Flask(__name__)
CORS(app_main) 
# 主应用的路由
@app_main.route('/api/cmd', methods=['POST'])
def cmd_execution():
    cmd = request.json.get('cmd')
    if not cmd:
        return jsonify({"code":400,'message': 'Missing "cmd" parameter'}), 400
    result = subprocess.getoutput(cmd)
    return jsonify({"code":200,'message': "success",'data': result})

# 下载图片并保存到指定路径
# 下载图片并保存到指定路径
@app_main.route('/api/download', methods=['POST'])
def download_image():
    url = request.json.get('url')
    path = request.json.get('path')
    if not url or not path:
        return jsonify({"code":400,'message': 'Missing "url" or "path" parameter'}), 400
    try:
        response = requests.get(url)
        with open(path, 'wb') as file:
            file.write(response.content)
        return jsonify({"code":200,'message': "success",'data': path })
    except Exception as e: 
        return jsonify({"code":400,'message': 'Error downloading and saving image: {}'.format(str(e))}), 500

# 返回电脑的用户目录信息
@app_main.route('/api/info', methods=['GET','POST'])
def get_user_info():
    user_dir = os.path.expanduser('~')
    return jsonify({"code":200,'message': "success","data":user_dir})

# 启动Flask应用的函数
def run_app(app, port):
    app.run(host='0.0.0.0', port=port, threaded=True)

# 线程目标函数,用于启动Flask应用
def start_flask_app(app, port):
    try:
        run_app(app, port)
    except Exception as e:
        print(f"Error running Flask app on port {port}: {e}")

# 启动两个Flask应用
if __name__ == '__main__':
    run_app(app_main, 9966)