Как автоматизировать обновление браузера при разработке приложения Flask с Python? - PullRequest
2 голосов
/ 10 июля 2019

Я начал изучать Flask для разработки веб-приложений. Чего мне действительно не хватает, так это автоматического обновления браузера после любого изменения кода (включая статические файлы, шаблоны и т. Д.). Кажется, это стандартная функция практически в любой среде Javascript. Для этого у внешних пользователей есть несколько терминов: автоматическая перезагрузка / обновление, горячая перезагрузка / обновление (горячая перезагрузка), прямая перезагрузка / обновление (живая перезагрузка), ...

Здесь, в Stackoverflow, наиболее похожие вопросы связаны с автоматической перезагрузкой сервера Flask (-> https://stackoverflow.com/search?q=flask+auto+reload).

J просто хочу обновить браузер.

Я гуглил и пробовал несколько вещей - не повезло:

Как я могу без проблем работать с Flask, не нажимая клавишу F5 1000 раз в день в браузере, чтобы увидеть результаты моих изменений?

Я думаю, что ответ где-то рядом с python-livereload по ссылке выше. Поэтому я думаю, что альтернативное название моего вопроса может быть:

У кого-нибудь есть рабочий пример Flask + python-livereload?

Я тупой, чтобы получить это из их документации:)

РЕДАКТИРОВАТЬ: ради завершенности вот приложение Flask, которое я использую.

# filename: main.py

from flask import Flask, render_template
from livereload import Server



app = Flask(__name__)

@app.route('/')
def index():
    return "INDEX"

@app.route('/bart')
def use_jinja():
    return render_template('basic.html')



if __name__ == '__main__':
    server = Server(app.wsgi_app)
    server.serve(port=5555)

Я запускаю приложение с

python main.py

1 Ответ

2 голосов
/ 10 июля 2019

Это интересный вопрос, который вы подняли, поэтому я создал быстрое и грязное приложение Flask, которое использует библиотеку livereload. Ниже перечислены ключевые шаги для того, чтобы заставить это работать:

  1. Загрузите и установите библиотеку livereload:

    pip install livereload

  2. В вашем основном файле, который запускает ваше приложение фляги, run.py в моем конкретном случае оберните приложение фляги классом Server, предоставленным livereload.

Например, мой run.py файл выглядит следующим образом:

from app import app
from livereload import Server

if __name__ == '__main__':
    server = Server(app.wsgi_app)
    server.serve()
  1. Запустите ваш сервер снова:

    python run.py

  2. Перейдите на локальный хост в браузере, и ваши изменения кода будут автоматически обновлены. Для меня я выбрал порт по умолчанию 5500, предоставленный livereload, поэтому мой URL выглядит следующим образом: http://localhost:5500/.

Благодаря этим шагам вы теперь сможете воспользоваться автоматическими перезагрузками для разработки на python, аналогично тому, что веб-пакет предоставляет для большинства сред внешнего интерфейса.

Для полноты кодовая база может быть найдена здесь

Надеюсь, это поможет!

...