diff options
| author | Andrew <saintruler@gmail.com> | 2019-06-29 20:35:31 +0400 |
|---|---|---|
| committer | Andrew <saintruler@gmail.com> | 2019-06-29 20:35:31 +0400 |
| commit | 155aba6c88cc651d2639ff2f11b0bbdb956cd4b8 (patch) | |
| tree | 7ba30878bebc24a4b683f821b04388367d30a511 /day9/task5/main.py | |
| parent | 4af386344a00e9338e2f46f1ce90954893c067be (diff) | |
WIP: Базовый HTTP сервер
Diffstat (limited to 'day9/task5/main.py')
| -rw-r--r-- | day9/task5/main.py | 40 |
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() |