загрузить файл и показать индикатор выполнения обработки в python - PullRequest
0 голосов
/ 05 января 2020

Ниже приведен код, который я использую

from tqdm import tqdm
import time

for x in tqdm(range(1000)):
    time.sleep(0.01)

, когда я запускаю этот код в CMD, я вижу индикатор выполнения. Но когда я применяю ту же логику c с приведенным ниже кодом, я не могу видеть индикатор выполнения на локальном хосте.

from flask import Flask, make_response, request
from tqdm import tqdm
import time

app = Flask(__name__)

def transform(text_file_contents):
    foo = text_file_contents.replace("=", ",")
    return foo


@app.route('/')
def form():
    return """
        <html>
            <body>
                <h1>Transform a file demo</h1>

                <form action="/transform" method="post" enctype="multipart/form-data">
                    <input type="file" name="data_file" />
                    <input type="submit" />
                </form>
            </body>
        </html>
    """



@app.route('/transform', methods=["POST"])
def transform_view():
    global file
    request_file = request.files['data_file']
    if not request_file:
        return "No file"

    file_contents = request_file.stream.read().decode("utf-8")

    result = transform(file_contents)



    response = make_response(result)
    response.headers["Content-Disposition"] = "attachment; filename=result.txt"
    file = response
    return '''
    <h3> Your file is ready to download</h3>
    <a href="/download" class="btn btn-primary btn-lg active" role="button" aria-pressed="true">Download</a>
     '''


@app.route('/download', methods=["GET"])
def download():
    for x in tqdm(range(1000)):
        time.sleep(0.01)
    return file

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

По сути, я пытаюсь добиться того, чтобы при загрузке файла с локального хоста я должен видеть индикатор выполнения, показывающий, сколько процентов файла обработано, и когда прогресс достигает 100% (завершено), он должен дать мне возможность загрузки. Я потратил 2 дня на поиски, но не могу найти решение. Я не знаю, смотрю ли я в неправильном месте или пропускаю простую логику c. Я не хочу использовать ттк. Пожалуйста, помогите мне. Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...