Tornado는 Python으로 작성된 비동기 웹 프레임워크로, 파일 업로드 처리를 포함한 다양한 기능을 제공합니다. 이번 블로그 포스트에서는 Tornado를 사용하여 파일 업로드를 처리하는 방법을 알아보겠습니다.
1. HTML 폼 작성하기
먼저, 파일을 업로드하기 위한 HTML 폼을 작성해야 합니다. 아래는 간단한 예시입니다.
<form action="/upload" enctype="multipart/form-data" method="post">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
enctype
을 multipart/form-data
로 설정하여 파일 업로드를 지원하도록 해야합니다.
2. Tornado 핸들러 작성하기
다음으로, Tornado 핸들러를 작성하여 파일을 업로드하는 로직을 처리해야 합니다. 아래는 파일 업로드를 처리하는 핸들러의 예시입니다.
import tornado.ioloop
import tornado.web
class UploadHandler(tornado.web.RequestHandler):
def post(self):
file = self.request.files['file'][0]
filename = file['filename']
with open(filename, 'wb') as f:
f.write(file['body'])
self.write('File uploaded successfully.')
app = tornado.web.Application([
(r"/upload", UploadHandler),
])
if __name__ == "__main__":
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
위의 예제에서는 post
메소드를 통해 실제 파일 업로드를 처리합니다. 파일은 self.request.files
딕셔너리를 통해 얻을 수 있으며, 파일의 이름과 바이너리 데이터에 접근할 수 있습니다. 이후, 업로드된 파일을 디스크에 저장하거나 다른 작업을 수행할 수 있습니다.
3. 서버 실행하기
위의 핸들러 코드를 실행하면 Tornado 서버가 8888 포트에서 실행됩니다. 웹 브라우저에서 http://localhost:8888
으로 접속하여 업로드 폼을 확인해보세요. 파일을 선택한 후 “Upload” 버튼을 클릭하면 파일이 업로드되고, 결과 메시지가 나타나게 됩니다.
마무리
이번 블로그 포스트에서는 Tornado를 사용하여 파일 업로드를 처리하는 방법을 알아보았습니다. Tornado의 강력한 비동기 웹 프레임워크 기능을 활용하여 파일 업로드 기능을 간단하게 구현할 수 있습니다. 자세한 내용은 Tornado 공식 문서‘를 참조하시기 바랍니다.