Небольшая загрузка файлов с помощью Flask - медленная - PullRequest
2 голосов
/ 27 октября 2019

Я загружаю небольшие файлы (sub 20k), используя Fetch и Flask, однако это может занять до 10 секунд для публикации, обработки, а затем возврата. И наоборот, если я запускаю те же функции в чистом Python, только одна и та же нагрузка и время обработки меньше секунды.

При запуске загрузки файла без обработки это почти мгновенная загрузка.

Я что-то упускаю, что замедляет работу при обработке файлов с помощью Flask?

I 'я пробовал загружать без обработки (быстро), я пытался обрабатывать без колбы (быстро). Я пробовал загружать и обрабатывать из браузера с флягой (медленно)

from flask import render_template, url_for, flash, redirect, request, jsonify, Response, Flask, session, make_response, Markup
import io, random, sys, os, pandas

app = Flask(__name__) 

@app.route("/")

############################################################
@app.route("/routee", methods = ['GET', 'POST'])
def routee():

    return render_template('Upload Test.html')
############################################################
@app.route("/routee/appendroute", methods = ['GET', 'POST'])
def appendroute():
    PrintFlask(request.files.getlist('route'))

    return make_response(jsonify('Voyage = VoyageJson, Intersects = IntersectJson'), 200)
############################################################

if __name__ == "__main__": 
    app.run(debug=True)

<script type="text/javascript"> 

function prepformdata(route){
  formdata = new FormData();
  for (var i = 0; i < route.files.length; i++) {
    formdata.append('route', route.files[i]);
  }
  return formdata
}
//////////////////////////////////////////////////////////////
function appendroutes(formdata, route) {

    uploadfiles = document.getElementById("files")

    formdata = prepformdata(uploadfiles)
    InitConst ={method: "POST",body: formdata} 
    url = window.origin + '/routee/appendroute'
    fetch(url,InitConst)
    .then(res => res.json())
    .then(data => {addon = data['Voyage']; addonIntersects = data['Intersects']})
    .then(() => console.log('Route(s) Added'))
}
</script>

Whilst the code above is very nippy. I'm expecting to do some equally nippy processing server side. But something is slowing it down. Any ideas why processing might slow down when flask is used?
...