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())
참고
반응형
'👩💻 Develope > Web' 카테고리의 다른 글
[etc] HTTP 상태코드 (0) | 2024.04.15 |
---|---|
[etc] 옵시디언(obsidian) 무료로 퍼블리시 하기 (0) | 2024.03.07 |
[FastAPI] FastAPI 알아보기 (0) | 2023.12.12 |
[API][Apps Script] 공공 데이터 포탈에서 공휴일 API 가져오기 (0) | 2023.10.25 |
[Django/React] 장고와 리액트 연동 (3) (0) | 2023.10.13 |