Пожалуйста, помогите. Какой код потребуется, чтобы создать простое приложение с текстовыми часами с python и flask, чтобы продемонстрировать, как работает flask streaming ? В идеале приложение должно показывать время текста, перезаписывая на экране, из потока обновлений раз в секунду.
Поток часов - это упрощенный случай текстового потока в реальном времени. Реальная основная потребность заключается в том, чтобы сервер выдавал одновременные видео и текстовые потоки (без звука), такие как Потоковое видео Мигеля Гринберга с Flask , и отображал оба обновления на экране на стороне клиента. Демо-видео Мигеля работает. Однако я пока не знаю, как заставить работать одновременный текстовый поток.
Я попробовал приведенный ниже код, и есть некоторые причуды:
- Элемент html p является просто заполнителем для текста. Его можно изменить на все, что может работать лучше.
- http://localhost:5000 показывает '/ time_feed', когда я хочу, чтобы вместо этого показывалось содержимое строки времени /time_feed.
http://localhost:5000/time_feed вообще ничего не показывает во время работы колб-сервера. Когда флеш-сервер внезапно останавливается, в браузере появляется куча обновлений, например:
2018.11.01 | 20: 29: 272018.11.01 | 20: 29: 282018.11.01 | 20: 29: 292018.11.01 | 20: 29: 302018.11.01 | 20: 29: 312018.11.01 | 20: 29 : 322018.11.01 | 20: 29: 33
Я пытался Потоковая передача данных с помощью Python и Flask , но не понимаю, как применить ответы javascript или jinga к коду моих часов. Я новичок в разработке веб и фляг.
app.py:
#!python3 Flask
# streaming clock per http://flask.pocoo.org/docs/1.0/patterns/streaming
from flask import Flask, Response, render_template, url_for
from datetime import datetime
import time
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/time_feed')
def time_feed():
def generate():
while True:
yield datetime.now().strftime("%Y.%m.%d|%H:%M:%S")
time.sleep(1)
return Response(generate(), mimetype='text')
if __name__ == '__main__':
app.run(debug=True, threaded=True)
.
/ шаблоны / index.html:
<title>Clock</title>
<h1>Clock</h1>
<p>{{ url_for('time_feed') }}</p>