Я нахожусь в процессе разработки веб-приложения в Python с использованием Flask framework.
При реализации конкретной задачи мне пришлось использовать концепцию длительного опроса. После некоторых поисков я обнаружил, что ссылка (простой пример длинного опроса) полезна в моем случае. Это простой пример веб-опроса, основанный на Flask и Flask -restful на стороне сервера и jQuery на стороне клиента. Код в этом примере опрашивает, чтобы проверить, было ли выполнено обновление / изменение файла .txt (data.txt
), если это так, он отображается на веб-странице.
Я написал небольшой фрагмент кода (как показано ниже), который обновляет файл data.txt, и заметил, что содержимое действительно показывалось на веб-странице при изменении файла .
#!/usr/bin/env python3
import time
def delete_content(fName):
with open(fName, "w"):
pass
def write_to_file(status):
with open("/Flask_app/data.txt", "a") as f:
f.write(status + '\n')
print(status)
delete_content('/Flask_app/data.txt')
for i in range(5):
write_to_file('printing ' + str(i))
time.sleep(1)
Проблема - если вышеупомянутый код выполняется несколькими клиентами, в зависимости от времени запуска клиентов вывод на веб-странице выглядит следующим образом смешанный, т.е. отображается содержимое, записанное в файл несколькими клиентами.
Например, если файл изменяют два клиента, вывод на веб-странице будет выглядеть примерно так:
1 2 3 1 2 4 3 4
... вместо
1 2 3 4
для Client 1
и
1 2 3 4
для Client 2
отдельно.
Как изменить код так, чтобы каждый клиент видел на веб-странице только свое собственное содержимое (записанное в файл данных)?
Извините за наличие внешней ссылки на опишите проблему. Я намеренно сделал это, чтобы пост был коротким. Любая помощь в этом отношении будет высоко оценена.
Спасибо.