Spaces:
Runtime error
Runtime error
| from http.server import BaseHTTPRequestHandler, HTTPServer | |
| from urllib.parse import urlparse, parse_qs | |
| from pathlib import Path | |
| # Function to check credentials | |
| def check_credentials(username, password): | |
| # Replace with your authentication logic | |
| return username == 'admin' and password == 'password' | |
| class RequestHandler(BaseHTTPRequestHandler): | |
| def do_GET(self): | |
| parsed_path = urlparse(self.path) | |
| path = parsed_path.path | |
| if path == '/': | |
| self._send_html_response('templates/index.html') | |
| elif path == '/login': | |
| self._send_html_response('templates/login.html') | |
| else: | |
| self.send_error(404, "File not found") | |
| def do_POST(self): | |
| content_length = int(self.headers['Content-Length']) | |
| post_data = self.rfile.read(content_length).decode('utf-8') | |
| params = parse_qs(post_data) | |
| username = params['username'][0] | |
| password = params['password'][0] | |
| if check_credentials(username, password): | |
| self.send_response(302) | |
| self.send_header('Location', '/index.html') | |
| self.end_headers() | |
| else: | |
| self._send_html_response('templates/login.html') | |
| def _send_html_response(self, page): | |
| path = Path(page) | |
| if path.exists() and path.is_file(): | |
| self.send_response(200) | |
| self.send_header('Content-type', 'text/html') | |
| self.end_headers() | |
| with open(page, 'rb') as file: | |
| self.wfile.write(file.read()) | |
| else: | |
| self.send_error(404, "File not found") | |
| def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000): | |
| server_address = ('', port) | |
| httpd = server_class(server_address, handler_class) | |
| print(f'Starting httpd on port {port}...') | |
| httpd.serve_forever() | |
| if __name__ == '__main__': | |
| run() | |