#python #server #bottle
#python #сервер #бутылка
Вопрос:
Я пытаюсь заставить работать сервер Bottle на Python. Вот мой код:
from bottle import route, run, template
from socket import gethostname, gethostbyname
from time import sleep
ip = str(gethostbyname(gethostname()))
@route('/')
def index():
return 'Hello World!'
run(host=ip, port=1234)
Я запускаю это, и на моем компьютере, где я его запускаю, я перехожу к http://127.0.1.1:1234/
, и появляется мой веб-сайт с Hello World!
.
Однако, если я попытаюсь подключиться к нему на своем телефоне или Chromebook моей сестры, он скажет, что веб-сайт отказался подключиться.
Я пытался заменить str(gethostbyname(gethostname()))
на '0.0.0.0'
и 'localhost'
, но ничего не сработало.
Ответ №1:
Избавьтесь от этой строки; в этом нет необходимости:
ip = str(gethostbyname(gethostname()))
Сделайте свою run
строку похожей на это:
run(host='0.0.0.0', port=1234)
Адрес 0.0.0.0
означает «прослушивать все адреса».
Наконец, определите сетевой адрес хоста, на котором запущено ваше приложение. Тогда другие устройства в той же сети должны иметь возможность подключаться <that ip address>:1234
. Устройства, находящиеся не в той же сети, смогут подключиться к службе, только если у вас есть общедоступный маршрутизируемый адрес (или если вы договорились о пересылке соответствующего порта с маршрутизатора, у которого есть общедоступный адрес).
Вы захотите убедиться, что в системе, на которой запущено ваше приложение, нет правил брандмауэра, которые препятствовали бы успешному подключению в противном случае.
Комментарии:
1. Хорошо, я попробую это, когда у меня будет возможность!