#javascript #python #html #eel
#javascript #python #HTML #eel
Вопрос:
Я создаю приложение с графическим интерфейсом, используя библиотеку eel на python. index.html
содержит форму входа в систему, и если вход в систему прошел успешно, я хочу ее открыть retrieve.html
.
Это мой код на python, и, пожалуйста, считайте вход в систему успешным.
@eel.expose
def retrieve():
eel.start('retrieve.html', size=(1000, 700))
eel.start('index.html', size=(1000, 700))
Это мой код javascript
function login_func()
{
var username = document.getElementById("username").value
var pword = document.getElementById("pword").value
eel.login(username, pword)(set_result)
}
function set_result(result)
{
if(result == "Failed")
{
window.alert("Please insert correct username and password")
}
else
{
window.close()
eel.retrieve()
}
}
Все работает нормально, но я получаю сообщение об ошибке, и это
OSError: [WinError 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted: ('localhost', 8000)
Как я могу избежать этого?
Ответ №1:
Используйте другой номер порта для 2-го окна, как указано ниже:
@eel.expose def retrieve(): eel.start('retrieve.html', size=(1000, 700), **port = 8080**)
eel.start(‘index.html ‘, размер=(1000, 700), порт = 8000)
или, в качестве альтернативы, проверьте это https://deecode.net/?p=438amp;lang=en
Ответ №2:
Вы не должны вызывать eel.start
снова … это настроит новый локальный сервер, websockets и т. Д. В этом случае вы можете вызвать eel.show
which повторно использует ваш существующий веб-экземпляр для отображения нового окна и страницы.
Так что измените свой код на что-то вроде:
@eel.expose
def retrieve():
eel.show('retrieve.html', size=(1000, 700))
Ответ №3:
Убедитесь, что ваш порт отличается для каждого окна