Почему сервер Python BaseHttpServer останавливается после выполнения? - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь разработать приложение, которое будет иметь веб-сервер Python.Все работает, как и ожидалось, но после выполнения логики (с помощью методов do_GET и do_POST) сервер просто останавливается, и появляется страница сброс соединения .Ниже приведен скриншот страницы:

enter image description here

Ниже приведен код веб-сервера 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 равны нулю, но все же я получаю данные!но с именами полей.Пример: имя = ник и фамилия = А.Я подумал, что это может быть причиной сброса соединения, поэтому обновил вопрос.

Терминальный вывод The output seen on terminal

...