Как заблокировать конечную точку Flask, чтобы доступ к ней мог иметь только один пользователь одновременно?Python

Программы на Python
Ответить
Гость
 Как заблокировать конечную точку Flask, чтобы доступ к ней мог иметь только один пользователь одновременно?

Сообщение Гость »


У меня есть сервер flask с множеством конечных точек, например:

@app.route('/project1/bench1') защита стенд1_dashboard(): return send_from_directory('templates/project1/bench1.html') Дело в том, что я создаю пользовательский интерфейс, который позволяет контролировать определенные вещи на стенде 1 без необходимости использовать удаленное управление. (Другой сервер Flask работает на стенде 1 и выступает в качестве клиента.)

Моя цель — каким-то образом заставить Flask разрешить доступ к этой конечной точке одновременно только одному пользователю.

Дополнительная информация:
[*]связь находится в состоянии покоя API [*]маршрут связи всегда начинается с JavaScript HTML-сайта, проходит через сервер, достигает клиента, а все, что происходит в обратном направлении, является просто ответами.
На стороне клиента мне удалось заставить HTML-сайт отправлять уведомление о закрытии страницы веб-сайта скамьи. Это значит, что у меня есть способ узнать, отключился ли пользователь, использующий сайт в данный момент.

Я также сделал словарь на стороне сервера для блокировок:
замки = { "bench1": "разблокировано" }
и изменил конечную точку следующим образом:

@app.route('/project1/bench1') защита стенд1_dashboard(): if locks["bench1"] == "заблокировано": вернуть render_template('bench_in_use.html') еще: locks["bench1"] = "заблокировано" return send_from_directory('templates/project1/bench1.html') Если страница закрыта, другая конечная точка получает уведомление и меняет блокировку на разблокированную.

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

Связано ли это с тем, как в flask работает многопоточность?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»