首页 > 解决方案 > 如何在本地而不是在主机上从 Web 应用程序运行功能

问题描述

我想创建一个网络应用程序,以便用户可以在他的计算机上本地运行进程(我知道目前它没有真正的用途)。

因此,我使用烧瓶创建 Web 应用程序并创建了一个按钮,该按钮调用运行该过程的函数。问题是函数在服务器上运行,而不是在用户使用的机器上运行。

例如要清楚:服务器在机器 1.2.3.4 上运行,用户从另一台机器 5.6.7.8 登录 Web 应用程序并按下按钮,函数将在主机(1.2.3.4)上运行,导致进程打开主机而不是用户计算机本地。

from flask import Flask, render_template, request, url_for, flash, redirect
import subprocess


def runchrome():
    p = subprocess.Popen(r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe")


app = Flask(__name__)

@app.route("/home", methods=["GET", "POST"])
def home():
    if request.method == "POST":
        process = request.form["process"]
        if process == "Chrome":
            runchrome()

    return render_template("Home.html")

标签: python-3.x

解决方案


您不能以这种方式通过 webapp 在客户端计算机上运行 python 代码。否则每个人都可以滥用它并在访问其网站的计算机上运行任意代码。但是,您可以在客户端计算机上的浏览器中运行 javascript。

为此,您需要返回包含 javascript 的有效 html 文档。请参阅本教程作为起点:https ://www.jitsejan.com/python-and-javascript-in-flask.html

另一种方法是用户在他们的机器上安装您的应用程序。


推荐阅读