我正在尝试用Flask创建一个简单的web应用程序。目标是让用户能够上传一个文件(在我的例子中是.csv),然后对其进行处理,最后将处理后的文件保存到用户的计算机上
到目前为止,我可以从浏览器中选择文件并上传。我将其保存为Python对象,也可以直接将其保存到我的个人下载文件夹中。但是,我不明白如何使下载路径动态化。如果我部署应用程序,每个人都应该能够将处理后的文件直接下载到各自的文件夹中。这是怎么回事
下面是我的代码:
from flask import Flask, render_template, request, redirect
import os
app = Flask(__name__)
@app.route("/")
def home():
return render_template("index.html")
@app.route("/upload-csv", methods=["GET", "POST"])
def uplaod_csv():
if request.method == "POST":
if request.files:
csv = request.files["csv"]
path = "this should be dynamic"
csv.save(os.path.join(path, csv.filename))
return redirect(request.url)
return render_template("index.html")
if __name__ == "__main__":
app.run(debug=True)
我是一个网络开发新手,非常感谢您的帮助
我想是误会了
csv.save(os.path.join(path, csv.filename))
-这将文件保存在服务器上-当您开发应用程序时,即您的计算机这不是
user
的路径用户路径是用户浏览器中的设置。通常是“downloads”目录,或者用户会被问到保存下载的位置
我设法得到了一个符合我要求的版本:
我现在可以上传一个csv,添加一个新的专栏,然后再次下载。很确定有更好的方法可以做到这一点,但它是有效的:)我首先将请求的文件保存在“uploads”文件夹中,然后将其作为pandas数据帧从那里读取,并进行一些基本的测试操作,然后将其作为csv保存到一个名为“downloads”的文件夹中。从那里,我可以下载它作为附件
谢谢你的所有投入
相关问题 更多 >
编程相关推荐