0
저는 내장 된 python3 http.server 모듈에 문제가 있습니다. 특히 BaseHTTPRequestHandler 클래스의 wfile.write() 메서드python3 HTTPServer/BaseHTTPRequestHandler 출력 스트림 문제
GET 요청을 사용하여 문자열로 미리 정의 된 html 양식을 보내려고합니다. 클라이언트로의 출력 스트림은 바이트 형 객체로 인코딩되어 클라이언트로 전송됩니다.
그러나 서버가 시작될 때 클라이언트 측에서 html 형식으로 렌더링되지 않습니다. 그것은 <pre>
태그로 싸여 있고 서식있는 텍스트로 표시됩니다. 여기
#!/usr/bin/env python3
from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import parse_qs
form = '''<!DOCTYPE html>
<title>Message Board</title>
<form method="POST" action="http://localhost:8000/">
<textarea name="message"></textarea>
<br>
<button type="submit">Post it!</button>
</form>'''
class MessageHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/plain; charset=utf-8')
self.end_headers()
self.wfile.write(form.encode())
if __name__ == '__main__':
server_address = ('', 8000)
httpd = HTTPServer(server_address, MessageHandler)
httpd.serve_forever()