Я пытаюсь разработать приложение, которое будет иметь веб-сервер Python.Все работает, как и ожидалось, но после выполнения логики (с помощью методов do_GET и do_POST) сервер просто останавливается, и появляется страница сброс соединения .Ниже приведен скриншот страницы:
Ниже приведен код веб-сервера Python:
from http.server import BaseHTTPRequestHandler, HTTPServer
# HTTPRequestHandler class
class testHTTPServer_RequestHandler(BaseHTTPRequestHandler):
# GET
def do_GET(self):
# Send response status code
self.send_response(200)
# Send headers
self.send_header('Content-type','text/html')
self.end_headers()
file = "./some2.html"
file2 = open(file,"r")
# Write content as utf-8 data
self.wfile.write(bytes(file2.read(), "utf8"))
#return
def do_POST(self):
content_len = int(self.headers.get('content-length', 0))
post_body = self.rfile.read(content_len)
print(post_body)
with open("rsmsg.txt","a") as f:
f.write(str(post_body))
print("Done storing file")
#return
def run():
print('starting server...')
# Server settings
server_address = ('192.168.10.151', 8083)
httpd = HTTPServer(server_address, testHTTPServer_RequestHandler)
print('running server...')
httpd.serve_forever()
run()
Ниже приведенHTML-код:
<html>
<body>
<script>
function getvalue(){
value1 = document.getElementById("first").innerHTML
value2 = document.getElementById("last").innerHTML
return value1+value2
}
</script>
<form action="" method="post">
First name:<br>
<input id="first" type="text" name="firstname">
<br>
Last name:<br>
<input id = "last" type="text" name="lastname">
<br><br>
<button type = "submit" onclick=getvalue()>Press it to store data on server</button>
</form>
</body>
</html>
После нажатия кнопки данные в input id="first"
и input id="last"
будут переданы на сервер.Но после нажатия почему отображается страница Сброс соединения ?и как мне предотвратить это?
ОБНОВЛЕНИЕ После отладки я понял, что в JS в HTML-коде value1
и value2
равны нулю, но все же я получаю данные!но с именами полей.Пример: имя = ник и фамилия = А.Я подумал, что это может быть причиной сброса соединения, поэтому обновил вопрос.
Терминальный вывод