使用线程Python Flask上传

时间:2017-11-03 09:31:46

标签: python multithreading flask

我想使用线程上传多个文件。这样文件可以在后台上传,而不会让用户等待。

这是我的简化代码:

在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函数中获取请求。

(无需正确上传文件。)

0 个答案:

没有答案