Сервер Flask Socket IO не обнаруживает изменений - PullRequest
0 голосов
/ 11 сентября 2018

Изменения, внесенные в файл application.py, по-видимому, не обнаруживаются сервером после сохранения файла, даже если включен режим отладки. Единственный способ увидеть изменения - это выйти из сервера и перезапустить с flask run

Вот код для application.py:

import os
import requests

from flask import Flask, session, render_template, request, url_for, flash, redirect, jsonify
from flask_socketio import SocketIO, emit

app = Flask(__name__)
app.config["SECRET_KEY"] = 'secret!'
socketio = SocketIO(app)

@app.route("/")
def index():
    print('hello world')
    return 'hello!'

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

А вот командная строка / терминал:

λ flask run
 * Serving Flask-SocketIO app "application.py"
 * Forcing debug mode on
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 156-884-244
(3824) wsgi starting up on http://127.0.0.1:5000
(3824) accepted ('127.0.0.1', 50569)
127.0.0.1 - - [10/Sep/2018 20:07:40] "GET /socket.io/?EIO=3&transport=polling&t=1536624459432-5 HTTP/1.1" 200 381 0.000000
(3824) accepted ('127.0.0.1', 50571)
127.0.0.1 - - [10/Sep/2018 20:07:40] "GET /socket.io/?EIO=3&transport=polling&t=1536624460314-6&sid=79eb8e587f664e3383c946bb046717ca HTTP/1.1" 200 215 0.000000
(3824) accepted ('127.0.0.1', 50568)
127.0.0.1 - - [10/Sep/2018 20:07:44] "GET /socket.io/?EIO=3&transport=websocket&sid=79eb8e587f664e3383c946bb046717ca HTTP/1.1" 200 0 4.610168
hello world
127.0.0.1 - - [10/Sep/2018 20:07:44] "GET / HTTP/1.1" 200 152 0.000000
hello world
127.0.0.1 - - [10/Sep/2018 20:07:58] "GET / HTTP/1.1" 200 152 0.000000
hello world
127.0.0.1 - - [10/Sep/2018 20:08:06] "GET / HTTP/1.1" 200 152 0.000000
wsgi exiting
(3824) wsgi exited, is_accepting=True

Эти hello world команды отображаются каждый раз, когда я изменяю текст в print('hello world') и обновляю браузер. Независимо от того, на что я его изменяю, я всегда получаю исходную версию аргумента печати кода.

Пара вещей, которые я замечаю:

  • эта проблема не возникает, когда я просто использую Flask. Когда я просто запускаю Flask, я вижу в командной строке / терминале, что изменения были обнаружены.
  • если я возвращаю шаблон HTML-файла, изменения в HTML-файле автоматически обновляются.

1 Ответ

0 голосов
/ 12 сентября 2018

Хм.Похоже, перегрузчик не работает с вами, запустите приложение через flask run.Однако он работает, когда вы запускаете его, запуская файл приложения (т. Е. python application.py).

Я зарегистрирую ошибку и выясню.

...