
SaaS 또는 BaaS 또는 API 수익화의 근본적인 접근 방식은 고객에게 다양한 서비스와 계획을 제공하는 것입니다. 따라서 사용자는 충분하다고 생각하는 계획 할당량을 선택하고 구매하고 합리적인 가격으로 지불할 수 있습니다. Flask 리미터에는 애플리케이션이 이러한 기능을 채택하고 구축하기 위한 기존 모듈과 매개변수가 있습니다. 이 확장으로 SaaS를 쉽고 가볍게 업그레이드할 수 있습니다.
이 장에서는 Flask Limiter와 관련 기능 및 매개변수에 대해 설명합니다. 이 기사가 끝날 때까지 기술을 습득하고 구매자를 위한 다양한 계획을 설정하고 제공하는데 사용되는 Flask 비율 제한으로 애플리케이션을 갖추기 시작할 수 있습니다.
목차: Flask Limiter를 사용하여 웹 애플리케이션, API 및 SaaS 사용에 대한 속도 제한 사용자 지정
- 플라스크 제한기란?
- 설치 및 모듈 가져오기
- 리미터를 전역적으로 초기화
- 속도 제한을 선언하는 데코레이터
Share_limit()
- 면제_언제
- Python 및 Flask Limiter 스크립트의 전체 샘플
플라스크 제한기란?
Flask limiter는 끝점에 속도 제한 기능을 쉽게 추가할 수 있는 Flask 확장 패키지입니다. 속도를 제한하는 것 외에도RATELIMIT_HEADERS_ENABLED
구성을 사용하여 HTTP 헤더에 속도 제한 정보를 넣을 수도 있습니다. 따라서 HTTP 헤더 정보를 직접 코딩할 필요가 없습니다. 그 외에도 Redis, 메모리 내, Memcached 등에 대한 현재 구현을 통해 스토리지에 대해 구성 가능한 백엔드를 지원합니다.
Flask 애플리케이션에 속도 제한 기능을 제공합니다. Flask 애플리케이션에 확장을 추가하면 다양한 수준과 계층에서 다양한 속도 제한을 구성할 수 있습니다. 애플리케이션 전체, 청사진별, 경로, 리소스 등과 같은 것입니다.
하루에 200, 시간당 50의 기본 속도 제한이 모든 경로에 적용됩니다. 여러 제한을 설정할 수도 있으며 구분 기호를 사용하여 구분하기만 하면 됩니다. 예를 들어 동시에 분당 100개 요청과 시간당 1000개 요청으로 한도를 설정할 수 있습니다.
설치 및 모듈 가져오기
Flask 리미터를 설치하려면 컴퓨터 터미널을 열고 pip3 install Flask-limiter
입력하면 됩니다. 설치를 완료하는 데 걸리는 시간은 단 10초입니다.
그런 다음 플라스크 리미터 모듈과 라이브러리를 Python 스크립트로 가져와야 합니다. 다음은 두 가지 주요 모듈입니다.
리미터는 생성자이며 Flask 앱으로 구성하는 전역 수준의 리미터를 만들 수 있습니다. 한편, get_remote_addresss<. /code> 데이터를 요청한 사용자의IP 주소를 식별하기 위한
key_func
값이다.
리미터를 전역적으로 초기화
생성자 – 리미터를 사용하여 Flask 앱으로 리미터를 구성할 수 있습니다. 이 구성에서는 get_remote_address인 기본 등급 제한인 key_func
설정할 수 있습니다.
속도 제한을 선언하도록 장식
구성에 설정된 전역 기본 제한 외에도 각 Flask 애플리케이션 경로에서 데코레이터 제한을 사용하여 등급 제한을 사용자 지정할 수 있습니다.
예를 들어 경로를 장식하는 데 자주 사용되는 몇 가지 핵심 매개 변수가 있습니다. 제한 값, exempt_when
, key_func/lambda
및 error_message
입니다. 다음은 이러한 매개변수를 사용하여 경로에서 데코레이터를 만드는 샘플입니다.
key_func/lambda
속도 제한에 대한 고유 식별자를 추출합니다. 기본값은 요청의 원격 주소입니다. 그러나 플라스크 로그인을 사용하여 특정 현재 사용자에 대해 사용자 정의하고 설정할 수 있습니다. 사용자 인증에 대한 자세한 내용은 다른 기사를 공개하여 자세히 설명하겠습니다.
Share_Limit()
속도 제한을 여러 경로에서 공유해야 하는 시나리오의 경우. 예를 들어 우산 속도 제한이 있는 동일한 리소스를 사용하여 경로를 보호하려는 경우입니다.
일반적으로 접근 방식은 인스턴스 리미터와 shared_limit 메서드가 있는 변수를 만드는 것입니다.
shared_limit 메소드에서 제한 값과 범위를 설정할 수 있습니다. 그런 다음 서로 공유하려는 경로에서 변수를 사용할 수 있습니다.
면제_언제
각 제한은 주어진 조건이 충족되면 면제될 수 있습니다. 제한을 정의할 때 콜러블을 exempt_when
인수로 제공하여 이러한 조건을 지정할 수 있습니다.
Exempt_when은 사용자 ID와 일치하지 않는 일부 상황을 제외할 수 있으므로 매우 유용합니다. 예를 들어 내가 페이지를 방문하는 프레스티지 회원이라면 페이지요청 한도가 다른 회원과 다를 수 있습니다. 따라서 이 경로의 제한 값은 다른 구성원을 위한 것입니다. 반면에 명성 회원은 사용자 정의 기능에서 전역 또는 다른 것을 사용할 수 있습니다.
Python 및 Flask Limiter 스크립트의 전체 샘플
56장 – Flask Limiter를 사용하여 웹 애플리케이션, API 및 SaaS 사용에 대한 속도 제한 사용자 지정의 전체 Python 스크립트에 관심이 있는 경우, "Chapter 56"이라는 메시지를 추가하여 뉴스레터를 구독 하십시오. . 귀하의 사서함으로 스크립트를 즉시 보내드립니다.
56장 – Flask Limiter를 사용하여 웹 애플리케이션, API 및 SaaS 사용에 대한 속도 제한 사용자 정의를 읽어보시기 바랍니다. 그렇다면 아래 나열된 항목 중 하나를 수행하여 지원해 주세요. 항상 채널에 도움이 되기 때문입니다.
- PayPal( paypal.me/Easy2digital )을 통해 채널 지원 및 기부
- 제 채널 구독하시고 알림벨을 켜주세요 Easy2Digital 유튜브 채널 .
- 내 페이지 팔로우 및 좋아요 Easy2Digital Facebook 페이지
- #easy2digital 해시태그를 사용하여 소셜 네트워크에 기사를 공유하세요.
- Easy2Digital 최신 기사, 비디오 및 할인 코드를 받으려면 주간 뉴스레터에 가입하십시오.