Я боялся, что вы это предложите. Я знаю как это делать, но, по какой-то причине это ни разу не срабатывало. Открываю порт 5000 в брандмауэре на входящее и исходящее подключение. Пробрасываю в настройках роутера этот порт, но не работает. На сайте https://portchecker.co/ пишется, что порт закрыт. Почему – не понимаю.
SoreMix, ok. Я указал хост как предложили вы. Теперь я вижу главную страницу с любого компьютера в своей локальной сети, указав локальный адрес компьютера с которого запускается сервер. Но стоит мне отключиться от локальной сети, то уже не получается. Причем я указывал в браузере как локальный адрес компа, так и ip адрес в интернете – не получается. Мне тут подсказали открыть порт и пробросить его до сервера. В теории я знаю как это сделать, но на практике у меня это никогда не получалось. Порт 5000 открывал в брандмауэре на исходящий и входящий трафик, на tcp и upd протоколы. Всего получилось по 2 правила на каждый тип подключения. Потом в роутере пробрасывал порт. Но это никогда не срабатывало. На сайте https://portchecker.co/ показывает, что порт закрыт. Почему?
Дмитрий, вопрос решил благодаря вам. Вы навели меня на мысль о том, что подвисает не мой цикл, а непосредственно сервер. Когда метод .read_json обращается по адресу к серверу, сервер может не ответить, но у этого метода нет атрибута timeout, поэтому он бесконечно ждет ответа и цикл не перезапускается. После того как сервер очнется, он уже не видит запрос. Чтобы решить проблему я использовал это: pandas.DataFrame(resuests.get(url, timeout=1).json()). После этого except уже сможет поймать ошибку timeout и повторить цикл. Все работает.
Дмитрий, Я вас немного не понимаю. Скрипт перестает работать насовсем. Он не оживает через несколько секунд. И ошибка о том, что превышено время ожидание ответа от сервера не возникает.
Дмитрий, по указанному адресу расположены данные в json формате, которые свободно предоставляются сайтом. Когда скрипт подвисает, в консоль ничего не выводиться: ни ошибка, ни таблица, хотя, когда я просматриваю эту страницу в браузере, данные присутствуют.