Задать вопрос
@Foxford12

У меня есть сервер на python его адрес 127.0.0.1:5000, но когда на другом устройстве переходишь по этому адресу то пишет страница не найдена?

Вот код сервера:
spoiler
import json

from flask import Flask, request, Response

app = Flask(__name__)

stats = {
    'attempts': 0,
    'success':0,
}

@app.route('/')
def hello():
    return f' Hello, user! stats={stats}'

@app.route('/auth', methods=['POST'])
def auth():
    stats['attempts'] += 1

    data = request.json
    login = data['login']
    password = data['password']
    print(login, password)

    with open('users.json') as users_file:
        users = json.load(users_file)


    if login in users and users[login] == password:
        status_code = 200
        stats['success'] += 1
    else:
        status_code = 401

    return Response(status=status_code)

if __name__ == '__main__':
    app.run()
  • Вопрос задан
  • 2491 просмотр
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 5
hint000
@hint000
у админа три руки
127.0.0.1 на любом устройстве означает "я сам".
Например, ваш однокласник Вася говорит: "я вчера ходил в кино с Юлькой". И вы говорите "я вчера ходил в кино с Юлькой". Фраза одна и та же, но Вася сказал правду (сервер работает), а вы соврали, потому что "я" (127.0.0.1) разные, у каждого своё "я", у каждого свой локальный сетевой интерфейс.
Ответ написан
Комментировать
phaggi
@phaggi
лужу, паяю, ЭВМы починяю
Цитата из интернета:
127.0.0.1 - это адрес обратной связи (loopback) - пакеты по нему реально в сеть не отправляются. Этому адресу по умолчанию назначают имя localhost.

Код сервера и язык совершенно не важны. Прежде чем писать и запускать какие-либо сервера, разберитесь с устройством сетей, их адресацией, маршрутизацией.

Аналогично этому: прежде, чем строить ж/д вокзал, разберитесь в устройстве железной дороги и паровоза. А не то вы далеко не уедете.
Ответ написан
Комментировать
@Drno
Потому что это локальный адрес устройства, он недоступен другим

Может прежде чем начинать кодить сетевое приложение, изучить основы сетей?
Ответ написан
Комментировать
Можешь попробовать перейти по адресу твоего пк внутри локальной сети. Как правило, это 192.168.х.х (смотреть в настройках подключения сети). Если не заработает, то выдать статический адрес твоему пк(в настройках роутера), настроить перенаправление 5000 порта на него(не обязательно по сути), а сам сайт запускать не на localhost, а на 192.168.х.х (смотри по параметрам)
Ответ написан
Комментировать
@mvdclowned
Ну для решения этого нужно как бы дать доступ устройствам которые в одной сети допустим у тебя файл основной app.py то в конце замени и пропиши это if __name__ == '__main__':
app.run(host='0.0.0.0',
port=5000, debug=True) это просмотрит айпи находящиеся как бы на компе и просто после 127.0.0.1:5000 192.168.xxx.xxx:5000 и теперь просто подключаешься с другого устройства обязательно подключившись к той же сети что и пк на котором запущено приложение , и всё)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы