我想使用线程上传多个文件。这样文件可以在后台上传,而不会让用户等待。
这是我的简化代码:
在app.py中:
from file_upload import upload_process
from flask import request
@app.route('/complete', methods=['POST'])
def complete():
id = 5 #for simplified example
upload_process(id) #My thread
...
return render_template('complete.html')
在file_upload.py中
from threading import Thread
from flask import request
def upload_process(id):
thr = Thread(target = upload_files, args = [id])
thr.start()
def upload_files(id):
file_1= request.files['file_1']
file_2= request.files['file_2']
file_3= request.files['file_3']
newFiles = FileStorage(id= id, file_1 = file_1.read(), file_2 =
file_2.read(), file_3 = file_3.read())
db.session.add(newFiles)
db.session.commit()
我收到错误:
RuntimeError:在请求上下文之外工作。 这通常意味着您尝试使用需要活动HTTP请求的功能。有关如何避免此问题的信息,请参阅测试文档。
如何在upload_files
函数中获取请求。
(无需正确上传文件。)