首页 > 解决方案 > Python Web App 通过 Heroku 服务器打开 Windows 资源管理器

问题描述

我正在尝试创建一个 Python / flask webapp,它接受一个等于 Dropbox 目录的查询,然后打开 Windows 资源管理器到该位置。它在本地机器上工作,但我需要它在我的 Heroku 服务器上工作。

%HOMEPATH% / "Dropbox Directory"当我复制并粘贴到目录中时,我尝试使用which 有效。

@app.route("/", methods=["GET","POST"])
def redirect_URL():
    url = request.args.get('url')
    HP = str(Path.home())
    path = Path(HP + url)

    string = r'explorer "{}"'.format(path)
    print(string)
    subprocess.Popen(string)
    return "success"

当应用程序之类的东西domain.com/?url="dropbox directory"应该打开 Windows 资源管理器到该位置时。

上面的代码在本地系统上运行良好。但是 Path.home 返回 app 文件夹

标签: python

解决方案


有一些好消息和一些坏消息。

好消息是你得到错误的目录是有原因的,你知道这是因为Path.home()返回了你的应用程序的目录。

坏消息是这永远不会改变。您的代码在服务器上运行,因此不仅会Path.home()始终返回您应用程序的目录,而且您无法获取所需的目录。

更多subprocess.Popen(string)的将在您的服务器上运行该过程。这就是为什么它可以在 localhost 上工作,但不能在 heroku 上工作的原因。您不能使用网站在客户端计算机上运行进程。

所以,你想做的事情是不可能从网站上做的。


推荐阅读