我正在通过github在azure上部署一个flask web应用程序。我遇到了文件处理的问题。
当我点击地址时,它会打开我需要上传文件的第一页。但是当我按下提交按钮来处理它时,它给出了“内部服务器错误”。该.xlsm文件是通过前端上传使用HTML表单,并在flask中的API中访问,但是,我无法处理(做任何操作或从中提取数据),可能是由于web在保存后无法访问它的原因。我不确定我应该给予出什么路径来保存我的文件,以便它可以被服务器访问。请注意,该应用程序在我的本地机器上运行绝对良好,而运行它在地址127.0.0.5000,但部署后不是。我是新来的,所以不知道事情是如何运作的。任何线索将不胜感激。提供的是代码,我试图运行。注意:我已经将代码上传到了一个连接到Azure的github存储库上。
我尝试使用temp_file_path = tempfile.mktemp(后缀='. xlsm')也将文件存储在临时位置,但没有任何效果。
from flask import Flask
app = Flask(__name__)
@app.route('/process', methods=\['POST'\])
def process():
if 'file_policy' not in request.files:
("No file part")
return render_template('output.html',filename='File not found')
else:
file = request.files\['file_policy'\]
app.config\['UPLOAD_FOLDER'\]='.'
filename = secure_filename(file.filename)
path=os.path.join(app.config\['UPLOAD_FOLDER'\], filename)
file.save(path)
output=(pd.read_excel('path', sheet_name='Input')) #to check if the file is correctly saved
print(path)
print(output)
result=subprocess.run(\['python', 'Motor_Tool_2.py', os.path.join(app.config\['UPLOAD_FOLDER'\], filename), path\], capture_output=True, text=True, cwd=os.getcwd())
return render_template('output.html', filename='path')
字符串
1条答案
按热度按时间vfh0ocws1#
我不认为上传有什么问题。我最初认为可能是路径问题,但我几乎使用了相同的代码,并成功上传了一个文件。
的数据
由于您收到了一个500错误,它很可能是在处理
output
或您的subprocess.run
方法。为了确定情况,您需要在process()
方法中添加一些额外的日志记录,并观察流中的日志。