#python #flask #flask-socketio
#python #фляжка #фляжка-сокетио #flask #flask-socketio
Вопрос:
Я пытаюсь создать веб-приложение, которое отображает случайные числа, изменяющиеся в режиме реального времени, без необходимости обновления страницы.
Вот мой код, который работает при обновлении, но не в режиме реального времени:
from flask import *
import random
# Init the server
app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecretkey'
# Send HTML!
@app.route('/')
def root():
i=0
while i < 10:
n=random.randint(0,9)
return str(n)
i = 1
# Actually Start the App
if __name__ == '__main__':
""" Run the app. """
app.run(host='0.0.0.0', port='8000', debug=True)
Какой код я должен добавить к этому, чтобы он показывал, что он меняется в режиме реального времени?
Комментарии:
1. Как только вы вызовете
return
, метод завершится. Для обновления страницы без обновления вам понадобится AJAX-процесс, в котором javascript вызывает сервер в фоновом режиме и обновляет страницу. Вы также можете проверить push-уведомления, но это может быть сложнее.2. Это было бы намного проще выполнить с помощью клиентского JavaScript, чем что-либо на сервере.
Ответ №1:
Поскольку страница не перезагружается, вам нужно сделать это с помощью JavaScript, который находится на стороне клиента. Поскольку это случайные числа, вам, вероятно, не нужно выполнять вызов AJAX, при котором клиент и сервер взаимодействуют друг с другом без каких-либо перезагрузок страницы. Существует библиотека JavaScript под названием Math
(документы здесь), которая имеет Random
функцию. Вы могли бы сделать что-то вроде этого:
function randomInteger(min, max) {
return Math.floor(Math.random() * (max - min) min
}
Это должно возвращать случайное целое число между min и max, включая min, но исключая max.