Tornado 6

[Tornado] httpclient - HTTP 요청

개요이전에 python의 requests를 사용해 http 요청하는 방법을 적어두었었는데, requests 라이브러리 외에 http 요청을 할 수 있는 방법은 여러 가지다. 이번 글에서는 Tornado의 httpclient 객체를 사용해 http 요청을 하는 방법을 적어둔다.  tornado.httpclienttornado.httpclient는 차단/비차단 HTTP 클라이언트 인터페이스다.simple_httpclient, curl_httpclient을 공유하는 공통 인터페이스를 정의하며, 사용자 애플리케이션은 적절한 구현 클래스를 직접 인스턴스화하거나 AsyncHTTPClient를 사용하여 재정의할 수 있는 구현 클래스를 선택할 수 있다. 기본적으로는 simple_httpclient를 사용한다.curl_..

Python 2024.09.30

[Tornado] on_finish 함수 비동기화 (?)

개요Tornado로 개발한 애플리케이션에서 Redis를 비동기로 연결하여 사용하고 있다. from tornado.web import RequestHandlerimport redis.asyncio as redisclass BaseHandler(RequestHandler): def prepare(self): self.redis_connection = redis.Redis() def on_finish(self): self.redis_connection.close()그러나 테스트를 해보니 Redis의 연결을 종료하는 시점에 다음과 같은 에러가 발생하는 것을 발견했다./home/brian/repos/medigator/venv/lib/python3.8/site-pa..

Python 2024.09.04

[Tornado] RequestHandler - initialize에 값 전달하기

개요2024.06.28-[Tornado] RequestHandler - 동작 순서와 메서드 재정의에서 initialize 함수는 전달받은 매개변수를 멤버 변수로 저장하는 역할을 수행한다고 했었다.이번 글에서는 initialize에 매개변수를 전달하는 방법을 적어둔다.  RequestHandler예시로 아래의 MainHandler의 initialize는 2개의 매개변수를 전달받아 멤버 변수로 저장한다.class MainHandler(RequestHandler): def initialize(self, admin_id, admin_password): self.admin_id = admin_id self.admin_password = admin_password  Applicatio..

Python 2024.07.26

[Tornado] RequestHandler - 동적 URL 처리

개요2024.06.23-[Tornado] RequestHandler - Form 입력 처리, 2024.06.24-[Tornado] RequestHandler - 기타 요청 데이터 접근에서 Tornado 애플리케이션에서 여러 형식의 요청 데이터에 접근해보았다.이번 글에서는 동젹 URL을 라우팅하고 핸들러에서 접근해본다.  동젹 URL 사용Application 객체는 라우팅 테이블을 포함하여 전역적인 구성을 담당한다. 라우팅 테이블은 url을 나타내는 정규 표현식과 핸들러 등으로 이루어진 튜플 리스트 또는 URLSpec 리스트가 된다.즉, 정적 URL이 아니라 동적 URL을 처리하고 싶다면 url 부분을 문자열이 아니라 정규 표현식으로 지정해야 한다. 아래 예시는 user 아래에 아무 url을 받으며, 필요..

Python 2024.07.17

[Tornado] RequestHandler - 기타 요청 데이터 접근

개요2024.06.23-[Tornado] RequestHandler - Form 입력 처리에서는 Form을 통해 전달받은 데이터를 접근하는 방법에 대해서 알아보았다. 하지만 이번에 맡은 업무는 JSON 등으로 입력받을 예정이다. 따라서 Tornado 애플리케이션에서 이번 글에서는 Form 입력 데이터 이외의 다른 입력 데이터에 접근하는 방법을 적어둔다.   요청 메서드 접근요청 메서드는 self.request.method 속성으로 사용할 수 있다.class MainHandler(RequestHandler): def get(self): print(self.request.method) self.write(self.request.method) def make_app(..

카테고리 없음 2024.07.16

[Python] Tornado 란

개요최근 Python Tornado 기반 API 개발 업무를 맡게 되었다. 이전에 API 개발에 대한 호기심으로 아래와 같은 글을 작성했었는데……2022.09.04-[Flask] 웹 애플리케이션 만들기2022.09.05-[Flask] REST API 만들기2022.09.11-[Flask] 요청(Request) 데이터 접근공부했었던 Flask가 아닌 Tornado를 사용하게 돼서 알아보려고 한다.  TornadoFriendFeed에서 개발한 Python 웹 프레임워크이자 비동기 네트워킹 라이브러리높은 동시성을 처리할 수 있도록 설계되어 있어 수천 명의 사용자가 동시 접속하는 서비스를 개발할 수 있다. 일반적인 웹 개발, 실시간 서비스와 웹소켓을 포함한 비동기 네트워킹 애플리케이션 개발에 적합하다. 주요 요..

Python 2024.07.03
1