1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- from wsgiref.simple_server import make_server, demo_app
- import time
- from urllib.parse import urlparse
- from io import StringIO
-
- HOST_NAME = 'localhost'
- PORT_NUMBER = 6666
-
- def handle_html_file_request(filename):
- if filename.startswith('/'):
- filename = filename[1:]
- data = open(filename).read()
- #return [data.encode("utf-8")]
- return [data]
-
- def handle_frontpage():
- return handle_html_file_request('index.html')
- #return ["Hello World".encode("utf-8")]
-
- def HandleError( PATH_INFO ):
- stdout = StringIO()
- print("requested site \"{}\" not found".format(PATH_INFO), file=stdout)
- print(file=stdout)
- print("time: {}".format(time.asctime()), file=stdout)
- return [stdout.getvalue().encode("utf-8")]
-
- def simple_webserver_app(environ, start_response):
- PATH_INFO = environ['PATH_INFO']
- parsed_path = urlparse(PATH_INFO)
-
- if environ['REQUEST_METHOD'] == 'GET' :
- start_response("200 OK", [('Content-Type','text/plain; charset=utf-8')])
-
- if PATH_INFO=='/' or PATH_INFO=='':
- return handle_frontpage()
- elif PATH_INFO.endswith('.html'):
- return handle_html_file_request(PATH_INFO)
- else:
- return HandleError(PATH_INFO)
-
- else:
- assert(0)
- pass
-
-
- if __name__ == '__main__':
-
- httpd = make_server(HOST_NAME,PORT_NUMBER,demo_app)
- #httpd = make_server(HOST_NAME,PORT_NUMBER,simple_webserver_app)
-
- print('{} http Server started - http://{}:{}'.format(time.asctime(), HOST_NAME, PORT_NUMBER))
-
- try:
- httpd.serve_forever()
- except KeyboardInterrupt:
- pass
-
- httpd.close()
-
- print('{} http Server started - {}:{}'.format(time.asctime(), HOST_NAME, PORT_NUMBER))
-
-
- import unittest
-
-
- class Webserver_UnitTest(unittest.TestCase):
-
- def setUp(self):
- pass
-
- def test_frontpage(self):
- ret = handle_frontpage()
- self.assertTrue(len(ret)==1)
-
- ret = handle_html_file_request('index.html')
- self.assertTrue(len(ret)==1)
-
- ret = handle_html_file_request('/index.html')
- self.assertTrue(len(ret)==1)
-
- pass
-
-
-
-
-
-
-
-
|