Python-флеш-сервер долго загружается - PullRequest
0 голосов
/ 26 июня 2018

У меня странная проблема, из-за которой при запуске кода ниже в PyCharm или через консоль (python script.py) серверу фляги требуется очень много времени для загрузки, что означает, что при попытке доступа к нему не отображается никакого содержимого для добрых несколько минут.

import threading
from flask import render_template, request, logging, Flask, redirect

def setupFlask():
    appn = Flask(__name__)
    log = logging.getLogger('werkzeug')
    log.setLevel(logging.ERROR)


    @appn.route('/')
    def page():
        return render_template('index.html')


    @appn.route('/submit', methods=['POST'])
    def submit():
        token = request.form['ID']
        ID = token
        return redirect('/')

    appn.run()
a = threading.Thread(target=setupFlask)
a.daemon = True
a.start()
while True:
    pass

Странно то, что когда я запускаю тот же код, что и выше, в отладчике PyCharm, серверу флаконов требуется около 5 секунд для загрузки, что значительно быстрее, чем несколько минут, которые требуются при запуске в консоли. Мне бы очень хотелось, чтобы такая скорость работала нормально, и я не могу найти решение из-за того, что проблема устраняется в отладчике! Этот фрагмент кода является частью более крупного приложения, однако я адаптировал его для самостоятельного запуска, и возникает та же проблема. Я не бегу в virtualenv. Вся помощь приветствуется.

РЕДАКТИРОВАТЬ: документ index.html является очень простым и содержит только несколько сценариев и элементов, поэтому я не мог видеть, что это занимает много времени для загрузки.

1 Ответ

0 голосов
/ 26 июня 2018

Проблема была с вашей Flask установкой, но есть и другая. Вы не должны ждать своей нити с циклом while. Лучше всего присоединиться к вашей теме, например:

a = threading.Thread(target=setupFlask)
a.daemon = True
a.start()
a.join()
...