👩‍💻 Develope/Web

[Tornado] Tornado 알아보기

heywantodo 2024. 10. 30. 13:59
728x90
반응형

[Tornado] Tornado 알아보기

 

Tornado

Tornado FriendFeed 에서 개발된 Python 웹 프레임워크이자 비동기 네트워킹 라이브러리다.

비차단 네트워크 I/O를 사용하여 Tornado는 수만 개의 개방형 연결로 확장이 가능하다.

 

따라서 long polling, WebSockets 및 각 사용자에 대해 같이 장기적인 연결 유지가 필요한 애플리케이션에 이상적이다.

 

Threads and WSGI

토네이도는 대부분의 Python의 웹프레임워크와 다르게 WSGI(Webserver Gateway Interface) 기반이 아니며, 일반적으로 프로세스 당 하나의 스레드로만 실행된다.

 

모듈에서 WSGI를 일부 지원하지만, 대부분의 애플리케이션은 WSGI를 사용하는 대신 토네이도 자체 인터페이스를 직접 사용하도록 작성해야 한다.

 

asyncio

토네이도는 표준 라이브러리 asyncio 모듈과 통합되어 있으며, 동일한 이벤트 루프를 공유한다.

일반적으로 토네이도와 함께 사용하도록 설계된 라이브러리는 자유롭게 혼합해서 사용이 가능하다.

 

설치

Tornado 6.3에는 Python 3.8 이상이 필요하다.

pip install tornado

 

예시

다음은 토네이도로 구현한 간단한 Hello, world 예제 웹 앱이다.

해당 예제는 토네이도의 비동기 기능을 사용하지 않는다.

import asyncio
import tornado

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

async def main():
    app = make_app()
    app.listen(8888)
    await asyncio.Event().wait()

if __name__ == "__main__":
    asyncio.run(main())

 

참고

https://www.tornadoweb.org/en/stable/

728x90
반응형