【发布时间】:2020-10-15 14:42:56
【问题描述】:
我有这个接受 POST 和 GET 请求的 Flask View
目标是对来自 POST 请求的数据做一些事情
并将其用于 GET 请求
例如这个 AJAX GET 请求
$.getJSON({url: '/uploadajax'}).done(result =>console.log(result));
等待从 POST 请求返回处理后的数据
我能够通过以下方式将数据传递给 AJAX 调用
声明全局变量 result 并在函数中更改它
并将其用作 GET 请求的返回值
这里的问题:有没有更清洁的方法来执行这个任务?
result = 0
# ------------upload-file-----------------------------------------#
@flask_class.route('/uploadajax', methods=['POST', 'GET'])
def receave_file():
if request.method == 'POST':
uploaded_file = request.files['file']
# filename = secure_filename(uploaded_file.filename)
if uploaded_file.filename != "":
filename = secure_filename(uploaded_file.filename)
file_ext = os.path.splitext(filename)[1] # was macht das ?
if file_ext not in Config.ALLOWED_EXTENSIONS:
abort(400)
# file kann auch net gespeichert werden
uploaded_file.save(os.path.join(flask_class.instance_path, 'uploads', filename))
# ------------------------------------- #
df = pd.read_excel(uploaded_file)
columns = df.columns.to_list()
global result
result = json.dumps(columns)
# return result
print("shoud return somehting")
# ---------------------------------------- #
return '', 204
# ---------------------------------------- #
else:
return "false"
else:
# GET REQUEST
if len(result) > 1:
return result
else:
return '', 404
# return render_template('index.html')
【问题讨论】: