Python: 404 Ошибка при доступе к странице с локального хоста - PullRequest
0 голосов
/ 27 марта 2020

У меня возникла ситуация, которая в настоящее время препятствует моему прогрессу в работе.

Я пытаюсь использовать вместе Flask и Sockets, чтобы я мог проверить, подключен ли определенный пользователь раньше или нет. Я могу показать видео в веб-браузере.

Вот мой код ниже.

from flask import Flask, render_template, Response, jsonify, request
from flask_socketio import SocketIO
from camera import VideoCamera, SocketConnections
import socket
import pickle
import struct
import new_client as NC #this is a client module

app = Flask(__name__)

video_camera = None
global_frame = None
urlfor_container = ""

HOST = ''
PORT = 5000


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('Socket created')

s.bind((HOST, PORT))
print('Socket bind complete')
s.listen(10)
print('Socket now listening')
c = SocketConnections('127.0.0.1',5000)
c.Establish_Connection()

conn, addr = s.accept()
print('connected workstation ', addr)

data = b'' ### CHANGED
payload_size = struct.calcsize("L") ### CHANGED

# check if the connection was accepted
app.run(host='',threaded=True)

Когда я запускаю этот код, кажется, все в порядке.

====== RESTART: C:\CENTRALIZED_SYSTEM_FILES\OpenCV Demozz\new_cam_serv.py ======
Socket created
Socket bind complete
Socket now listening
test message should print if code was accessed
connected
connected workstation  ('127.0.0.1', 59283)
* Serving Flask app "new_cam_serv" (lazy loading)
* Environment: production
[31m   WARNING: This is a development server. Do not use it in a production deployment.[0m
[2m   Use a production WSGI server instead.[0m
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Однако, когда я пытался получить доступ к веб-странице с локального хоста (localhost: 5000 / 127.0.0.1: 5000), я получаю сообщение об ошибке «404 Страница не найдена». У меня уже есть папка шаблонов вместе с индексом. html в той же папке, где расположен основной модуль, но каждый раз, когда я запускаю этот код, я все равно получаю сообщение 404.

Кроме того, я пытался использовать разные варианты для IP-адреса, но безуспешно, все же 404.

Любая помощь от вас, ребята, будет принята с благодарностью. Спасибо.

РЕДАКТИРОВАТЬ: я пытался создать оператор if name == " main " внизу, а затем вставил этот фрагмент кода в предложение. Затем я заметил, что сервер flask успешно запущен, и я смог снова просмотреть страницу, но здесь есть проблема. после того, как я прервал выполнение, это единственный раз, когда мой код для соединения с сокетом был выполнен.

Итак, мой вопрос сейчас ... возможно ли использование сокета и Flask при в то же время?

Еще раз спасибо.

1 Ответ

0 голосов
/ 27 марта 2020

Я просто хочу предоставить обновление, которое я нашел решение для этого. Действительно возможно использовать одновременно сокет и Flask.

Я обнаружил, что app.run () требует действительный IP-адрес для работы при использовании с сокетом. IP-адрес из сокета и IP-адрес из Flask должны совпадать, иначе он не будет работать. Я обнаружил это при попытке отладки сценария и заметил, что сокет и Flask в моем скрипте ссылаются на разные IP-адреса.

Итак, я изменил:

app.run(host='',threaded=True)

на это:

app.run(host='127.0.0.1',threaded=True)

У меня есть попробовал это с другими IP-адресами, и он работает просто отлично.

Еще раз спасибо всем.

...