sindzicat
@sindzicat
Инженер-конструктор, программист-самоучка (Python)

Как перезагрузить Flask с помощью запроса через сайт?

Добрый день.

На Flask-plugins я увидел код примера, как можно перезапустить сервер, нажав на кнопку на сайте. Пример для Linux, а мне надо будет, чтобы кроме Linux, это работало и на Windows.
По ответам на Stackoverflow получается следующее:
@app.route('/restart')
def restart_flask():
    args = [sys.executable] + sys.argv[:]
    os.execv(sys.executable, args)
    return("")

Но это не работает. Процесс Python.exe падает. Не могу даже понять, почему...

Есть ещё интересный проект Livereload, который автоматически перезагружает flask при изменении .py, .html и наверно .css файлов. Пытался вникнуть код, но пока не понял, как у него получается перезагружать flask.
  • Вопрос задан
  • 1325 просмотров
Пригласить эксперта
Ответы на вопрос 3
@deliro
Настраиваешь uwsgi на то, чтобы он ребутался через touch (touch-reload).
Вызываешь во вьюхе touch.
PROFIT
Ответ написан
sindzicat
@sindzicat Автор вопроса
Инженер-конструктор, программист-самоучка (Python)
Я обнаружил, что LiveReload имеет некоторые проблемы при работе на Windows. В частности, не всегда происходит перезагрузка Flask. Иногда падает Python.exe.
Я решил, что эта функция будет использоваться только в веб-версии, которая будет крутиться на Linux. А под Windows будет уже не flask, а нечто другое. Соответственно мой вопрос более не актуален.
Ответ написан
Комментировать
можно использовать функцию которая будет управлять и вызывать приложение flask. например
def kill():
    time.sleep(21600)
    os.system("kill -9 $(sudo lsof -t -i:80)")


while True:
    t = Thread(target=kill)
    t.start()
    os.system("python3 main.py")


и запускать приложение с помощью этого скрипта
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы