summaryrefslogtreecommitdiff
path: root/day9/task5/main.py
diff options
context:
space:
mode:
authorAndrew <saintruler@gmail.com>2019-06-29 20:35:31 +0400
committerAndrew <saintruler@gmail.com>2019-06-29 20:35:31 +0400
commit155aba6c88cc651d2639ff2f11b0bbdb956cd4b8 (patch)
tree7ba30878bebc24a4b683f821b04388367d30a511 /day9/task5/main.py
parent4af386344a00e9338e2f46f1ce90954893c067be (diff)
WIP: Базовый HTTP сервер
Diffstat (limited to 'day9/task5/main.py')
-rw-r--r--day9/task5/main.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/day9/task5/main.py b/day9/task5/main.py
new file mode 100644
index 0000000..8cdf7a1
--- /dev/null
+++ b/day9/task5/main.py
@@ -0,0 +1,40 @@
+from http.server import HTTPServer, BaseHTTPRequestHandler
+import logging
+
+
+class MyHTTPRequestHandler(BaseHTTPRequestHandler):
+ def update_post(self, query):
+ return f'<h1>{query}</h1>'
+
+ def index_get(self):
+ return 'INDEX!!!!'
+
+ def _set_response(self):
+ self.send_response(200)
+ self.send_header('Content-type', 'text/html')
+ self.end_headers()
+
+ def do_GET(self):
+ if self.path == '/':
+ response = self.index_get()
+ else:
+ response = '<center><h1>ERROR 404 NOT FOUND</h1></center>'
+
+ self._set_response()
+ self.wfile.write(response.encode('utf-8'))
+
+ def do_POST(self):
+ content_length = int(self.headers['Content-Length'])
+ post_data = self.rfile.read(content_length).decode('utf-8')
+
+ response = self._router['POST'].get(
+ self.path, lambda *args: '<center><h1>ERROR 404 NOT FOUND</h1></center>'
+ )(post_data)
+
+ self._set_response()
+ self.wfile.write(response.encode('utf-8'))
+
+
+server_address = ("", 8000)
+httpd = HTTPServer(server_address, MyHTTPRequestHandler)
+httpd.serve_forever()