我有一个DNA扫描工具.我想要异步发送和接收数据.在Flask中的每个操作之后,我希望将数据发送到前端,该前端将告诉用户正在发生的事情.
以下是我的代码: Flask :
@app.route('/upload', methods = ['GET','POST'])
def upload():
if request.method == "POST":
uploaded_file = request.files['fasta_file']
uploaded_file.filename = str(uuid.uuid4()) + ".fasta"
file_name = uploaded_file.filename
if file_name != '':
file_ext = os.path.splitext(file_name)[1]
if file_ext not in app.config['UPLOAD_EXTENSIONS']:
return redirect(url_for('uploader'))
else:
print("Uploading")
uploaded_file.save(os.path.join(app.config['UPLOAD_PATH'], file_name))
print("Uploaded")
print("Scanning")
os.system(f"python3 DNAScanner.py instance/uploads/{file_name}%2%3")
print("Scanned")
new_folder = pickle.load(open("store.p","rb"))
print("Making ZIP FILE")
shutil.make_archive(f"static/output/{new_folder}", 'zip', f"static/output/{new_folder}")
print("Done")
JS:
$('#submit').click(function() {
var form_data = new FormData($('form')[0]);
$.ajax({
type: 'POST',
url: '/upload',
data: form_data,
contentType: false,
cache: false,
processData: false,
success: function(data) {
console.log(data);
},
});
});
因此,无论我使用打印功能在Flask 中打印什么,我都想在前端向用户显示它.